Замена всей страницы, включая заголовок, с использованием Javascript - PullRequest
53 голосов
/ 27 ноября 2010

У меня есть функция Javascript, которой передается строка.Переданная строка является целой веб-страницей, включая заголовок.Мне нужен Javascript для замены всей текущей страницы, заголовка и всего нового содержимым.

Рассмотрим следующий HTML-файл:

<html>
  <head>
    <script language="Javascript">
      <!--
      var newContent='<html><head><script language="Javascript">function Hi() {alert("Goodbye World");}</script></head><body onload="Hi();">New Content</body></html>';
      function ReplaceContent(NC) {
        document.body.innerHTML=NC;
      }
      function Hi() {
        alert("Hello World");
        ReplaceContent(newContent);
      }
      -->
    </script>
  </head>
  <body onload="Hi();">
    Original Content
  </body>
</html>

В этом случае переданная строка:

<html><head><script language="Javascript">function Hi() {alert("Goodbye World");}</script></head><body onload="Hi();">New Content</body></html>

Но, разумеется, поскольку функция «ReplaceContent» заменяет только тело, но не заголовок, я никогда не получаю предупреждение «Goodbye World».

IGNORING "ПОЧЕМУ Я ХОЧУ СДЕЛАТЬ ЭТО ", Как я могу динамически заменить всю страницу, включая заголовок и функции javascript?

Пожалуйста, помните, что" source "html ('newContent' выше) существует толькокак строка, она нигде не существует на сервере, поэтому я не могу просто перенаправить на нее.

Какие изменения я внесу в «ReplaceContent» выше, чтобы появилось предупреждение «Goodbye World», как только содержимоезаменены? Пожалуйста, имейте в виду, что я не могу заранее знать значение переменной newContent !!

Обратите внимание: ответы на вопрос «зачем вам это делать» будут опущены.

Ответы [ 4 ]

50 голосов
/ 27 ноября 2010

Использовать document.write.

<html>
  <head>
    <script language="Javascript">
      <!--
      var newContent='<html><head><script language="Javascript">function Hi() {alert("Goodbye World");}</script></head><body onload="Hi();">New Content</body></html>';
      function ReplaceContent(NC) {
        document.open();
        document.write(NC);
        document.close();
      }
      function Hi() {
        ReplaceContent(newContent);
      }
      -->
    </script>
  </head>
  <body>
    Original Content
    <a href="javascript:Hi()">Replace</a>
  </body>
</html>
14 голосов
/ 27 ноября 2010

Сценарий

javascript:document.open('text/html');document.write('<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>HAI</title></head><body><h1>OMG HAI2U!!!1</h1></body></html>');document.close();

DOM-снимок полученной страницы

<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>HAI</title></head><body><h1>OMG HAI2U!!!1</h1></body></html>
4 голосов
/ 27 ноября 2010
$("html").html('your page html here');
0 голосов
/ 14 октября 2018

var script = document.createElement('script');
script.src = 'http://code.jquery.com/jquery-1.7.2.min.js';
script.type = 'text/javascript';
document.getElementsByTagName('head')[0].appendChild(script);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...