jQuery取代所有HTML

jQuery replace all HTML

本文关键字:HTML 取代 jQuery      更新时间:2023-09-26

我试图用另一个页面替换所有的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代码没有执行。

谁有更好的主意?

有更好的主意吗?是的,只需通过设置window.location而不是使用AJAX正常加载新页面。或者提交一个表单。

否则,如果您想加载一些内容来替换当前页面的所有可见内容,但要保持当前页面的脚本运行,请将所有可见内容放在一个框架大小以填充浏览器窗口—同样,您不会使用AJAX填充该窗口。

(我喜欢AJAX,但我不明白为什么要用它来替换整个页面。)