JQuery заменить весь HTML - PullRequest
0 голосов
/ 01 октября 2011

Я пытаюсь заменить весь HTML (включая теги HTML) на другую страницу. Я пытаюсь сделать так, чтобы веб-сайт работал как приложение даже при переходе на другую страницу.

Вот код:

(function($) {
  Drupal.behaviors.loadingPage = {
    attach: function(context,settings) {
      $('a').click(function(event) {
        event.preventDefault();
        // Create the loading icon
        // ...
        $.ajax({
          url: $(this).attr('href'),
          success: function(data) {
            $('html').replaceWith(data);
          }
        });
      });
    }
  };
})(jQuery);

Я пробовал несколько вещей. replaceWith () вызывает ошибку jQuery в jquery.js после удаления тега HTML. Я полагаю, это потому, что он больше не может найти родителя для добавления замены.

Лучший результат, который я получил, был document.write(data). Проблема в том, что код JavaScript на загруженной странице не выполняется.

Кто-нибудь получил идею получше?

1 Ответ

1 голос
/ 01 октября 2011

Лучшая идея?Да, просто загрузите новую страницу, установив window.location вместо использования AJAX.Или отправьте форму.

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

(мне нравится AJAX, но я не понимаю, почему вы используете его для замены всей страницы.)

...