[英]Display blank webpage before webpage loads
我试图使用tampermonkey为其中一个网站创建主题,所以基本上我想从页面中删除所有内容,然后将自定义HTML添加到页面中。但是在主题出现之前,实际的网页显示了几秒钟。在我的自定义脚本添加一些自定义HTML之前,网站将完全空白。
我在tampermonkey中添加了以下代码
// @run-at document-start
并且我添加了以下代码以首先清空网页
document.body.innerHTML = '';
//my remaining custom codes to add few tables and stuffs
所以我得到了这个错误
VM82 userscript.html:2错误:脚本“无显示”的执行失败! 无法将属性“ innerHTML”设置为null
为了解决这个问题,我添加了100毫秒的settimeout,然后
setTimeout(function(){
document.body.innerHTML = '';
}, 50);
但是仍然显示第二个实际网页。
当脚本在document-start
运行时,无法保证主体存在。 通常,情况恰好相反:文档完全为空,仅定义document.documentElement,它是<html>
标记的DOM元素。
只需停止当前的加载进度,然后使用document.open + document.write:
// ==UserScript==
// @name blank out
// @match *://*/*
// @run-at document-start
// ==/UserScript==
stop();
document.open('text/html', 'replace');
document.write(`
<html>
<body>foo</body>
</html>
`);
请注意,如果站点的CSP限制特别严格,则可能无法正常工作。 在这种情况下,您将必须使用可以放松CSP的扩展(或者您可以自己编写这样的扩展)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.