用新的HTML(包括脚本)替换文档

时间:2018-08-18 21:35:10

标签: javascript jquery html

现在,我使用AJAX获取页面的HTML,并使用jQuery修改DOM,我可以完美地完成这一部分。

我使用以下代码加载新的HTML:

document.body.parentElement.innerHTML = newDoc.body.parentElement.innerHTML;

它加载了全新的HTML,问题是它没有加载所有脚本,所以我找到了解决方案:

https://ghinda.net/article/script-tags/

此问题是内联具有document.write,因为它会覆盖整个页面。

例如:

<script>document.write("Hello");</script>

在原始脚本上,它会写入放置位置,而不会覆盖整个文档。

我不想使用document.write加载新文档,因为某些浏览器不尊重脚本的加载,我发现这种方法更好。

1 个答案:

答案 0 :(得分:0)

我找到了一种方法,可以覆盖document.write函数。

对此:

document.write = function() {
var e = Array.prototype.join.call(arguments, "");
if (document.currentScript) document.currentScript.insertAdjacentHTML("beforebegin", e);
else {
    var t = document.getElementsByTagName("script");
    t[t.length - 1].insertAdjacentHTML("beforebegin", e)
 }
}; 

我希望有人觉得这有用