Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Открытие окошка без url, но с содержанием!


Автор: GZep 11.10.2006, 15:39
Вот надо мне чтоб при нажатии на сылку открывалось окно с примерно следующим содержанием:

Код

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
        <meta http-equiv="Content-Language" content="ru">
        <title>Окошко - кокошко!</title>
    </head>
    <link rel="stylesheet" type="text/css" href="style.css">
    <body>
        <table border="1" width="100%" height="100%">
            <tr>
                <td align="center"><img src="1.gif" border="0"></td>
            </tr>
            <tr>
                <td align="center"><img src="2.gif" border="0"></td>
            </tr>
        </table>
    </body>
</html>


и надо чтоб эта разметка заливалась в окно при помощи явы скрипта из родительского фрейма!

как это осуществить?
(в ФАКе я видел только варианты, когда просто открывался файл и показывали как менять и задавать его настройки)

Автор: Aliance 11.10.2006, 18:37
Код

<a href="javascript://" onclick="view()">открыть новое окно</a>


Код

function view() {
   var previewWinAliance = window.open('new.html','new');
   var textAliance = "<html>";
   textAliance += "    <head>";
   textAliance += "        <meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\">";
   textAliance += "        <meta http-equiv=\"Content-Language\" content=\"ru\">";
   textAliance += "        <title>Окошко - кокошко!</title>";
   textAliance += "    </head>";
   textAliance += "    <link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\">";
   textAliance += "    <body>";
   textAliance += "        <table border=\"1\" width=\"100%\" height=\"100%\">";
   textAliance += "            <tr>";
   textAliance += "                <td align=\"center\"><img src=\"1.gif\" border=\"0\"></td>";
   textAliance += "            </tr>";
   textAliance += "            <tr>";
   textAliance += "                <td align=\"center\"><img src=\"2.gif\" border=\"0\"></td>";
   textAliance += "            </tr>";
   textAliance += "        </table>";
   textAliance += "    </body>";
   textAliance += "</html>";
   previewWinAliance.document.open;
   previewWinAliance.document.write(textAliance);
   previewWinAliance.document.close;
   previewWinAliance.focus();
}

Автор: GZep 11.10.2006, 19:36
Вопросы:
  • А файл "new.html" должен существовать? мне надо сделать так, чтоб без файла....
  • "textAliance += \"    <head>\";" - тут можно использовать что-то вроде "\t" или "\n", как в пхп?
  • "<a href=\"javascript://\" onlick=\"view()\">" - можно заменить на: "<a onlick=\"view()\">"???
P.S

Спасибо, уже очень сильно помогли вы мне, но ведь алчному человечку хочется больше...

Автор: AKS 11.10.2006, 21:01
GZep, 
1. 'about:blank'.
2. Можно, точнее нужно (для удобства), использовать строковые спецсимволы.
3. <a href='#' onclick='view();return false;'>открыть новое окно</a>
Ну и вызов методов - open()/close()...

Автор: Aliance 12.10.2006, 08:48
Все прекрасно работает:
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<TITLE>© AlianceHTMLEditor [ http://editor.sut.net.ru/editor.html ]</TITLE>
<script type="text/javascript" language="JavaScript">
<!--//--><![CDATA[//><!--

function view() {
   var previewWinAliance = window.open('new.html','new');
   var textAliance = "<html>";
   textAliance += "\n\t<head>";
   textAliance += "\n\t\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\">";
   textAliance += "\n\t\t<meta http-equiv=\"Content-Language\" content=\"ru\">";
   textAliance += "\n\t\t<title>Окошко - кокошко!</title>";
   textAliance += "\n\t</head>";
   textAliance += "\n\t\t<link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\">";
   textAliance += "\n\t\t<body>";
   textAliance += "\n\t\t\t<table border=\"1\" width=\"100%\" height=\"100%\">";
   textAliance += "\n\t\t\t\t<tr>";
   textAliance += "\n\t\t\t\t\t<td align=\"center\"><img src=\"1.gif\" border=\"0\"></td>";
   textAliance += "\n\t\t\t\t</tr>";
   textAliance += "\n\t\t\t\t<tr>";
   textAliance += "\n\t\t\t\t\t<td align=\"center\"><img src=\"2.gif\" border=\"0\"></td>";
   textAliance += "\n\t\t\t\t</tr>";
   textAliance += "\n\t\t\t</table>";
   textAliance += "\n\t\t</body>";
   textAliance += "\n</html>";
   previewWinAliance.document.open;
   previewWinAliance.document.write(textAliance);
   previewWinAliance.document.close;
   previewWinAliance.focus();
}

//--><!]]>
</SCRIPT>
</HEAD>

<BODY>

<a href="javascript://" onclick="view()">открыть новое окно</a>

</BODY>
</HTML>



Цитата(GZep @  11.10.2006,  20:36 Найти цитируемый пост)
"<a href=\"javascript://\" onlick=\"view()\">" - можно заменить на: "<a onlick=\"view()\">"???

Не нужно.

Автор: GZep 12.10.2006, 18:43
Всем большое спасибо! Все, дальше уже не буксую и все получается!

 smile 

Автор: GZep 15.10.2006, 18:38
ой, а если написать следующее:
Код

............
textAliance += "</script>";
..........

то он даже не смотрит на то, что тег в кавычках и закрывает скрипт.
что делать, а?

Автор: Zeroglif 15.10.2006, 19:23
Цитата(GZep @  15.10.2006,  18:38 Найти цитируемый пост)
что делать, а?


Код

textAliance += "<\/script>";

Автор: 12345c 15.10.2006, 19:23
textAliance += "<\/script>";

Автор: GZep 16.10.2006, 12:58
Спасибо, теперь все, принцип работы понял.

 smile  smile  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)