繁体   English   中英

如何处理404页面上的拒绝权限异常?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM