首页 > 解决方案 > 通过 AJAX 在 JavaScript 中“手动”刷新页面

问题描述

我想使用 JavaScript 模拟页面更改(例如用户单击链接)。这意味着我通过 AJAX 加载新页面的源代码,然后手动替换 DOM 中的内容。像这样的东西:

$.get(linkTarget, function(html) {
  var bodyHtml = /<body.*?>([\s\S]*)<\/body>/.exec(html)[1];
  if (bodyHtml) {
    $('body > *:not(.thingsToKeep)').remove();
    $("body").prepend(bodyHtml);
  }
});

但是,当页面上有很多 JavaScript 时,问题就会出现,这些 JavaScript 基本上会在已经声明的变量和常量的情况下在其自身之上执行一次。如果天真地完成,可以肯定这会破坏许多脚本。

整个练习的重点是能够在重新加载其他所有内容的同时保持现有页面的某些内容运行(例如,正在播放的视频)。

所以问题是,这个想法(“手动”重新加载页面)是“已知科学”吗?有这样的图书馆吗?

标签: javascript

解决方案


推荐阅读