Javascript在停止窗口加载后显示一些内容
Javascript show some content after stopping window load
我正在编写一个 chrome 扩展程序,用于停止特定网站的页面加载。我这样做的方式是将我的内容脚本注入页面并调用
window.stop()
这按预期工作,我看到一个空白的白色网页。我现在想在这个空白的白页上显示一条自定义消息,我该怎么做。
这是我到目前为止尝试过的,在调用 window.stop() 之后,我有这样一行:
document.body.innerHTML += '<div style="position:absolute;width:100%;height:100%; z-index:100;background:#000;"></div>';
但它抛出了一个错误
Uncaught TypeError: Cannot read property 'innerHTML' of null
我检查了 DOM,它确实有正文标签。我不确定出了什么问题。
我假设您通过在document_start
处注入内容脚本并决定是否阻止来阻止站点。
更好的方法是完全取消初始请求,并将其重定向到您自己的错误页面。
webRequest
API 可以做到这一点:
chrome.webRequest.onBeforeRequest.addListener(
function(details) {
if(/* condition based on details */) {
// The file might need to be in web_accessible_resources
return {redirectUrl: chrome.runtime.getURL("my_error.html")};
}
},
{urls: ["<all_urls>"], types: ["main_frame"]},
["blocking"]
);
注意:这将在每个导航请求上调用您的测试代码;这可能会减慢速度。如果您有特定的站点列表,则可以将它们放在过滤器的urls
参数中以获得更好的性能。
您将需要主机权限,涵盖要阻止的站点(或"<all_urls>"
,如果您可能需要所有站点),"webRequest"
和"webRequestBlocking"
。
您可以随时使用 window.document.write()。
您的代码将看起来像...
document.write("<div style='position:absolute;width:100%;height:100%; z-index:100;background:#000;'></div>")
相关文章:
- 如何在生成下载文件时显示加载动画
- 如何在谷歌字体加载时显示加载图像
- 现在可以在加载addThis时显示加载吗
- 单击时选择2(未选中),显示加载微调器javascript
- 如何在网页加载时显示加载内容,并在页面完全加载时隐藏此内容
- 在弹出窗口中显示加载消息
- 使用jquery/ajax显示加载图像
- 在引导轮播加载之前显示加载微调器
- 是否可以在页面开始加载之前显示加载gif/image
- 单击链接后显示加载程序
- 等待数据时显示加载程序
- 在谷歌地图上显示加载消息
- 只想在页面上未加载初始数据时显示加载gif
- 如何在加载选项卡内容时显示加载图像
- 如何在ajax请求中显示加载微调器
- 当javascript图像转盘加载36个图像时,我可以显示加载指示器吗
- 隐藏/显示加载功能不起作用
- Jquery Chosen插件-通过Ajax动态填充列表时显示加载图标
- 有没有一种方法可以用jQuery捕获JavaScriptPageMethods调用?(显示加载屏幕)
- jquery图片库显示加载程序gif