在网页加载之前显示空白网页

时间:2019-02-15 12:30:14

标签: javascript greasemonkey tampermonkey

我正在尝试使用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错误:脚本'display none'的执行失败!无法将属性“ innerHTML”设置为null

要解决此问题,我添加了100毫秒的settimeout,然后

setTimeout(function(){
document.body.innerHTML = '';
}, 50);

但是仍然显示第二个实际网页。

1 个答案:

答案 0 :(得分:1)

当脚本在@Spy上运行时,不能保证该正文存在。通常,情况恰好相反:文档完全为空,仅定义document.documentElement,它是import * as path from "path"; import tl = require('azure-pipelines-task-lib/task'); import trm = require('azure-pipelines-task-lib/toolrunner'); import os = require('os'); async function run() { try { const libmanJson = tl.getPathInput('libmanjson', true, true); //this throws } catch (err) { console.log(err.message); tl.setResult(tl.TaskResult.Failed, err.message); } } 标签的DOM元素。

只需stop the current loading progress并使用document.open + document.write:

document-start

请注意,如果站点的CSP特别严格,则可能无法正常工作。在这种情况下,您将必须使用可以放松CSP的扩展(或者您可以自己编写这样的扩展)。

相关问题