Помните, что после загрузки страницы выходной поток браузера автоматически закрыт. После этого любой метод Document.Write (), который работает на текущей странице, откроет новый выходной поток, который очистит содержимое текущей страницы (включая любые переменные или значения исходного документа). Поэтому, если вы хотите заменить текущую страницу на HTML, сгенерированный сценарием, вы должны подключить контент HTML и назначить ее с переменной и использовать метод Document.Write () для завершения операции записи. Без очистки документа и открытия нового потока данных, вызов Document.Write () может сделать все.
Еще одна вещь, которую нужно объяснить о методе Document.Write (), - это связанный с ним метод Document.Close (). После того, как сценарий записывает содержимое в окно (будь то или другое окно), выходной поток должен быть закрыт. После последнего метода документа. Если вы этого не делаете, вы не можете отображать изображения и формы. И любой, впоследствии называемый Document.Write (), будет добавлять только контент на страницу без очистки существующего контента для написания нового значения. Чтобы продемонстрировать метод Document.Write (), мы предоставляем две версии одного и того же приложения. Один пишет контент в документ, содержащий сценарий, а другой пишет контент в отдельное окно. Пожалуйста, нажмите на каждый документ в текстовом редакторе, сохраните его с расширением файла .html и откройте документ в браузере.
Пример 1 создает кнопку, которая объединяет новый HTML -контент для документа, включая теги HTML для нового заголовка документа и цветных атрибутов тега. В примере есть оператор +=, который не знаком читателям. Он добавляет строку справа от переменной слева. Эта переменная используется для хранения строки. Этот оператор может легко объединить несколько отдельных операторов в длинные строки. Используя контент, объединенный в переменной NewContent, оператор Document.Write () может записать весь новый контент в документ, полностью очистив контент в примере 1. Затем вам необходимо вызвать оператор Document.Close (), чтобы закрыть выходной поток. При загрузке документа и нажав кнопку, вы можете заметить, что заголовок документа в строке заголовка браузера в результате меняется. Когда вы вернетесь в исходный документ и снова нажимаете кнопку, вы можете увидеть, что вторая страница, написанная динамически, загружается даже быстрее, чем перезагрузка исходного документа.
Пример 1 Используйте Document.Write () в текущем окне.
<! Doctype html public "-// w3c // dtd xhtml 1.0 transitional // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> xmlns = "http://www.w3.org/1999/xhtml"> <Title> Написание в одном Doc </title> <script language = "javascript"> function rewort bgcolor = 'aqua'> <h1> Этот документ является совершенно новым. newContent += "</body> </html>" // Написать html в документ с новым окном.
В примере 2 ситуация немного сложна, потому что сценарий создает детское окно, в которое будет записан весь документ, сгенерированный сценарием. Чтобы сохранить ссылку на новое окно, активное в обеих функциях, мы объявляем переменную NewWindow как глобальную переменную. Когда страница загружается, обработчик событий Onload вызывает функцию MakeneWwindow (), которая генерирует пустое окно дочернего окна. Кроме того, мы добавляем свойство к третьему параметру метода Window.open (), чтобы сделать строку состояния дочернего окна видимой.
Кнопка на странице вызывает метод subwrite (), и первая задача, которую она выполняет, - это проверить закрытые свойства окна дочернего окна. Если эталонное окно закрыто, это свойство (присутствующее только в более новых версиях браузера) возвращает true. Если это так (если пользователь вручную закрывает окно), функция снова вызывает функцию makenewWindow (), чтобы открыть окно.
После открытия окна новый контент объединяется как строковая переменная. Как в примере 1, запишите содержимое одновременно (хотя для отдельного окна нет необходимости, а затем вызовите метод Close (). Но обратите внимание, что одно важное отличие: оба записи () и методы Close () четко указывают окна дочерних.
Пример 2 Используйте Document.Write () в другом окне
<! Doctype html public "-// w3c // dtd xhtml 1.0 transitional // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> xmlns = "http://www.w3.org/1999/xhtml"> <title> Написание в subwindow </title> <script language = "javascript"> var newwindow function makenwindow () {newwindow = window.open ("", ",", "Статус, eight = 200, width = 300"). Сделайте новое окно, если кто -то закрыл его, если (newwindow.closed) {makenewWindow ()} // Принесите Subwindow в Front newWindow.focus () // Собирайте контент для нового окна var newContent = "<html> <Head> <title> Новый документ </title> </head>" newcontent += "<body bgcolor = 'oremply> </head>" newcontent += "<body bgcolor ='> 'oremply> </head>" newcontent += "<hod Bgcolor ='> 'head> <h head>" newcontent += " new.</h1>" newContent += "</body></html>" // write HTML to new window document newWindow.document.write(newContent) newWindow.document.close() // close layout stream }</script></head><body onLoad="makeNewWindow()"> <form> <input type="button" value="Write to Subwindow "onclick =" subwrite () "> </form> </body> </html>