[英]How do I handle a permission denied exception at a 404 page?
我正在尝试编写一个rubymonkey脚本,该脚本将在firefox中检查页面是否显示404错误。 如果是这样,脚本应重新加载页面。 schript看起来像这样:
// ==UserScript==
// @name 404-reloader
// @namespace None
// @include *
// @version 1
// ==/UserScript==
url = "http://www.example.com";
if (document.getElementById("errorPageContainer"))
location.href = url;
我的问题是,它仅在某些时候有效。 为了测试它,我关闭了无线适配器并加载了页面。 该脚本本身不是,所以我手动启动了它。 第一次启动该脚本时,该脚本起作用并更改为example.com,在该错误中,我又遇到了一个未找到错误,因为适配器仍处于关闭状态。 我再次启动了脚本,它起作用了。 第三次之后,脚本中出现异常:
/*
Exception: Permission denied to access property 'document'
@Scratchpad/2:10
*/
我发现,当我更改URL时,脚本可以工作一次。 之后,我得到这个异常。 当脚本不起作用时,我将其复制到了firebug控制台中并运行了它。 它在那里工作,但仍然没有在油腻的脚本中。
现在,我想知道为什么lublessmonkey的行为会如此,以及我如何处理“异常”问题以及Greasemonkey无法在404页上单独运行的问题。
我已经搜索了答案,但是没有找到对我的问题有用的东西。
谢谢您的帮助
我认为这实际上是GM不在错误页面上运行的一个功能,对我来说这是有效的:
当您在document-start
运行并为DOMContentLoaded
添加侦听器时,而不是默认运行在document-end
,即使重新加载,它对我也很好。 请注意,尽管@run-at
是特定@run-at
GM的(> = 1.0),但据我所知目前还不能移植到Chrome / Opera。
// ==UserScript==
// @name test123
// @namespace test123
// @version 1
// @include *
// @grant none
// @run-at document-start
// ==/UserScript==
document.addEventListener("DOMContentLoaded", function () {
console.log(document.getElementById('errorPageContainer'));
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.