В Уроке 11 мы открывали окно с помощью команды window.open. Окно заполнялось другим документом HTML, который мы указывали в скобках.
Сейчас мы попробуем создать функцию, которая откроет новое окно, причем и новое окно, и все его содержимое будет вписано в тот же документ HTML. То есть в буквальном смысле слова мы вложим две страницы в одну.
Скрипт
<SCRIPT LANGUAGE="JavaScript">
function
openindex()
{
var OpenWindow=window.open("", "newwin",
"height=300,width=300");
OpenWindow.document.write("<HTML>")
OpenWindow.document.write("<TITLE>Новое
окно</TITLE>")
OpenWindow.document.write("<BODY
BGCOLOR='white'>")
OpenWindow.document.write("<CENTER>")
OpenWindow.document.write("<font
size=+1>Новое
окно</font><P>")
OpenWindow.document.write("<a href=
'www.narod.ru' target='main window'> Эта
ссылка<BR>откроется в главном
окне</a><p>")
OpenWindow.document.write("<P><HR><P>")
OpenWindow.document.write("<a
href='' onClick='self.close()'> Эта закроет
окно</a><p>")
OpenWindow.document.write("</CENTER>")
OpenWindow.document.write("</HTML>")
self.name="main
window"
}
</SCRIPT>
...и в строке BODY:
onLoad="openindex()"
Помните, текст в скобках должен находиться на одной строке.
Результат
Эффект тот же, что и в прошлом уроке: открылось окно
того же размера с теми же ссылками. Разница в том, что все это было
написано на одной странице. Чтобы увидеть, как действует скрипт,
с одной разницей — здесь новое окно запускается кнопкой, а не командой onLoad.
Разбор скрипта
Главная часть скрипта, содержащая функцию, помещается между командами <HEAD> и </HEAD>, как большинство функций.
По самой обычной схеме функция получает имя openindex(). Теперь подходим к основному моменту. Создаем переменную OpenWindow, под которой скрывается команда window.open(). Вот так:
var OpenWindow=window.open("", "newwin", "height=300,width=300');
Это было на прошлом уроке. Единственная разница в том, что вы не указываете URL. Видите пустые парные кавычки? Они говорят браузеру, что он должен искать информацию о новом окне. То же самое, что и не ставить URL в ссылку, которая закрывает окно. Оно бы не закрылось, если бы начала загружаться новая страница. Точно так же и тут. Браузер стал бы загружать новую страницу, а не выполнять скрипт.
Теперь начинаем писать страницу HTML, которая будет внутри нового окна. Вот первая строка текста:
OpenWindow.document.write("<HTML>")
Переменная OpenWindow (то есть новое окно) говорит, что этот текст должен быть вписан в документ.
Взгляните на скрипт. Каждая новая строка следует той же схеме. Можно написать сотню строк, создающих законченную страницу. Наш скрипт совсем небольшой, так как это наглядное пособие.
Помните: когда вы пишете HTML внутри команды document.write, вместо двойных кавычек с подкомандами ставьте одинарные. Иначе будут проблемы.
Наконец командой onLoad в строке BODY запускается функция.
Ваше задание
Сегодня вам придется написать функцию, которая открыла бы окно с зеленым фоном и приветствием: «Привет, имя пользователя, вот твое окно!» Имя пользователя можно узнать с помощью запроса. Разумеется, допишите еще ссылку, которая закроет окно.
Возможный ответ здесь