Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИТ ИНформатика лабораторные работы часть II.doc
Скачиваний:
77
Добавлен:
14.02.2015
Размер:
2.72 Mб
Скачать

Динамическое создание документов

Теперь рассмотрим, как с помощью JavaScriptможно динамически создавать новые документы. То есть новая HTML-страницfбудет формироваться в зависимости от различных ситуаций по заданным вами параметрам. Например, бывает необходимо оптимизировать страницу для различного разрешения экрана. Или вам захотелось, чтобы вид документа менялся в зависимости от определенной даты. Но для начала создадим простой HTML-документ, который будет выводиться в новом окне. Рассмотрим следующий скрипт:

<html>

<head>

<script language="JavaScript">

<!--

function NewWin()

{

// создать новое окно

NewDoc=window.open("", "NewWindow",

"width=500,height=200,status=yes,toolbar=yes,menubar=yes");

// открыть объект document для последующей печати

NewDoc.document.open();

// генерировать новый документ

NewDoc.document.write("<html>");

NewDoc.document.write("<head>");

NewDoc.document.write("<title>Пример динамического ");

NewDoc.document.write("создания документов</title>");

NewDoc.document.write("</head>");

NewDoc.document.write("<body>");

NewDoc.document.write("<center>");

NewDoc.document.write("<font size=+3>");

NewDoc.document.write("Этот HTML-документ создан ");

NewDoc.document.write("с помощью JavaScript!");

NewDoc.document.write("</font>");

NewDoc.document.write("</center>");

NewDoc.document.write("</body>");

NewDoc.document.write("</html>");

// закрыть документ - (но не окно!)

NewDoc.document.close();

}

// -->

</script>

</head>

<body>

<center>

<input type=button value="Новый документ" onClick="NewWin()">

</center

</body>

</html>

Пример выполнения данного скрипта представлен на рисунке 11.

Рисунок 11 – Динамическое создание документа

В данном примере формирование нового документа выполняется функцией NewWin(). Рассмотрим ее действие. Сначала с помощью методаopen()открывается новое окно браузера. Первый параметр метода является пустой строкой(""), так как мы не желаем в данном случае указывать конкретный адрес URL. После того, как мы открыли окно, наступает очередь открыть для записи объектаdocument. Делается это с помощью команды:

// открыть объект document для последующей печати

NewDoc.document.open();

Здесь мы обращаемся к open() – методу объекта document. Однако это совсем не то же самое, что метод open()объектаwindow. Эта команда не открывает нового окна – она лишь готовит document к предстоящей печати. Кроме того, мы должны поставить передdocument.open()приставкуNewDoc, чтобы получить возможность писать в новом окне. В последующих строках скрипта с помощью вызоваdocument.write()формируется текст нового документа:

// генерировать новый документ

NewDoc.document.write("<html>");

NewDoc.document.write("<head>");

NewDoc.document.write("<title>Пример динамического ");

NewDoc.document.write("создания документов</title>");

NewDoc.document.write("</head>");

NewDoc.document.write("<body>");

NewDoc.document.write("<center>");

NewDoc.document.write("<font size=+3>");

NewDoc.document.write("Этот HTML-документ создан ");

NewDoc.document.write("с помощью JavaScript!");

NewDoc.document.write("</font>");

NewDoc.document.write("</center>");

NewDoc.document.write("</body>");

NewDoc.document.write("</html>");

Как видно, здесь мы записываем в документ обычные тэги языка HTML. То есть мы фактически генерируем разметку HTML. При этом Вы можете использовать абсолютно любые тэги HTML. По завершении этого мы обязаны вновь закрыть документ. Это делается следующей командой:

// закрыть документ – (но не окно!)

NewDoc.document.close();

Теперь нам только остается в нужном месте вызвать функцию командой

<input type=button value="Новый документ" onClick="NewDoc()">

или, например, указав ссылку:

<a href='javascript:NewDoc()'>Новый документ</a>

Переменные в JavaScript

В JavaScriptне существует таких понятий переменных, как в обычных языках программирования. Все переменные, пусть они даже являются целыми числами, считаются строковыми или так называемыми литералами.