страница 152
В листинге 8.2 используется кнопка, которая вызывает новое содержание HTML для документа, включая дескрипторы HTML для заголовка нового документа и атрибуты цвета дескриптора <body>. В листинге присутствует оператор, который ранее не описывался. Это оператор +=. Данный оператор добавляет к строке, содержащейся слева от него, строку, расположенную справа от оператора. Этот оператор позволяет быстро объединить длинные строки из нескольких отдельных операторов. Используя содержимое переменной newContent и всего один вызов метода document.write(), можно наполнить весь документ полностью новым содержимым, не оставив даже следа от содержимого листинга 8.2. Оператор document.close(), тем не менее, в обязательном порядке используется для нормального закрытия выходящего потока. Теперь загрузите документ, щелкните на кнопке и обратите внимание на то, как изменится название документа в строке названия браузера. Если после этого щелкнуть на оригинале и затем снова воспользоваться кнопкой, то динамически заполняемая вторая страница будет загружаться намного быстрее, даже по сравнению с перезагрузкой исходного документа.
<html> <head> <title>Writing to Same Doc</title> <script type="text/javascript"> function rewrite() { //Вызов содержимого для нового окна var newContent = "<html><head><title>A New Doc</title></head>"; newContent += "<body bgcolor='aqua'><h1>This document is brand new.</h1>"; newContent += " Click the Back button to see original document."; newContent += "</body></html>"; //Записывается HTML в новое окно документа document.write(newContent); document.close(); //Закрытие потока } </script> </head> <body> <form> <input type="button" value="Replace Content" onclick="rewrite()"> </form> </body> </html>
Листинг 8.2. Использование метода document.write()