Читать «Введение в JavaScript для Мага» онлайн - страница 15

Стефан Кох

myWin.document.write("</title></head><body>");

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

myWin.document.write("This HTML-document has been created ");

myWin.document.write("with the help of JavaScript!");

myWin.document.write("</font></center>");

myWin.document.write("</body></html>");

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

По завершении этого мы обязаны вновь закрыть документ. Это делается следующей командой:

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

myWin.document.close();

Как я уже говорил, Вы можете не только динамически создавать документы, но и по своему выбору размещать их в в том или ином фрейме. Например, если Вы получили два фрейма с именами frame1 и frame2, а теперь во frame2 хотите сгенерировать новый документ, то для этого в frame1 Вам достаточно будет написать следующее:

parent.frame2.document.open();

parent.frame2.document.write("Here goes your HTML-code");

parent.frame2.document.close();

Динамическое создание VRML-сцен

Чтобы продемонстрировать гибкость языка JavaScript, давайте теперь попытаемся динамически создать сцену на языке VRML. Напомним, что аббревиатура VRML расшифровывается как язык моделирования виртуальной реальности. То есть это язык для создания трехмерных сцен. Можно, например, взять очки виртуальной реальности и наслаждиться прогулкой по таким сценам… Возьмем самый простой пример — голубой куб.

Тем не менее, чтобы рассмотреть его, понадобится программная приставка VRML к Вашему браузеру (plug-in). Предлагаемый Вашему вниманию скрипт не проверяет, а доступен ли браузеру plug-in VRML (впрочем сделать это — вовсе не проблема).

Исходный код скрипта:

<html>

<head>

<script language="JavaScript">

<!- hide

function vrmlScene() {

vrml= open("", «displayWindow»,

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

// открыть document для последующего вывода информации

vrml.document.open("x-world/x-vrml");

vr= vrml.document;

// создать сцену VRML

vr.writeln("#VRML V1.0 ascii");

// Освещение

vr.write("Separator { DirectionalLight { ");

vr.write("direction 3–1 -2.5 } ");

// Камера

vr.write("PerspectiveCamera { position -8.6 2.1 5.6 ");

vr.write("orientation -0.1352 -0.9831 -0.1233 1.1417 ");

vr.write("focalDistance 10.84 } ");

// Куб

vr.write("Separator { Material { diffuseColor 0 0 1 } ");

vr.write("Transform { translation -2.4.2 1 rotation 0 0.5 1.9 } ");

vr.write("Cube {} } }");

// Закрыть document — (но не окно!)

vrml.document.close();

}

// — >

</script>

</head>

<body>

<form>