【发布时间】:2017-05-02 13:32:24
【问题描述】:
这不是一个重复的问题,原因如下:
- 我在询问如何在没有 jQuery 或任何其他花哨的 JavaScript 扩展的情况下用 JavaScript 替换整个 HTML 文档。与此问题类似的其他一些问题涉及 AJAX 或 jQuery 等特定问题。
- 我不是在问为什么
document.write()只附加到页面上。也许我正在寻找的纯 JavaScript 解决方案可能会包含该功能,但它不能仅仅如此,因为它本身是不够的。
我想要做的是覆盖网页,因为它仅在浏览器中显示为 HTML。函数document.write() 仅将传递给它的任何参数附加到文档的正文中。可以读取属性 document.documentElement.outerHTML,但与在页面的子元素上使用它时不同,它不能被写入,即使可以,它也会保持 DOCTYPE 不变。
我正在处理一个书签,所以这个 JavaScript 不会在页面中运行,这意味着脚本在运行时被覆盖没有问题。它也可以在浏览器的开发者工具中运行。
例如,假设我在浏览器中打开了about:blank。 DOM 的内容如下所示:
<html>
<head></head>
<body></body>
</html>
我希望能够用我想要的任何字符串覆盖它。所以,例如,我可以让它看起来像这样:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Example</title>
</head>
<body>
<p>This is an example.</p>
</body>
</html>
如何实现对文档的这种覆盖?
【问题讨论】:
-
据我所知,唯一的方法是修改每个部分。我建议也许考虑重构你的代码。
标签: javascript html