运行 selenium IDE 脚本来自动填写表单时,我收到以下信息:
[error] There was an unexpected Alert! [Javascript Error :MY-SUPER-TOP-SECRET-URL line 37 Error: NS_ERROR_XPC_SECURITY_MANAGER_VETO: ]
当我检查第 37 行时,它是一个设置全局 bool 的小代码块,包装在 jQuery click() 匿名函数中。
parent.jQuery(parent.document).click(function () {
parent.sharedVars.enableGenderKey = false;
});
我正在运行 jQuery 1.8.3。 有小费吗?有趣的是,表单确实填写成功一次,但在尝试 2 次及以上时,它会出错。
我们追踪到了它,我们认为这是错误的 SSL 证书。 我们无法绝对确认,但一旦证书得到解决,问题似乎就消失了
我知道这是一篇旧帖子,但我今天收到此错误(jQuery 2.2.3 和 Firefox 46.0.1)。我有 (A) 一个表单帖子,它导致 (B) 一个 iframe 加载了 jQuery 代码,(C) 在 iframe 的父级中创建了元素。其中一些具有匿名函数来处理点击事件。单击时,此函数导致 (D) 表单再次提交到 iframe。
(D) 中的函数运行一次,然后在第二次(以及随后的每次)单击时发生上述否决错误。这与 OP 描述的设置类似:一个匿名 jQuery 函数多次使用表单执行某些操作。
根据这个理论,我重构了整个解决方案以避免这种情况并消除了错误。
这是在我的情况下完成的解决方法:我在页面(iframe 之外)中有一个 javascript 函数来处理我想做的事情。
function myclick(e)
{
if (!$(e.target.hasClass('wantclick'))) return;
actualstuff();
}
我将
onclick='myclick(event);'
绑定到 iframe 中的 jQuery 代码将新内容放入其中的 div。在 iframe 内,我有 jQuery 做.addClass('wantclick')
。
我在 Firefox 57、Linux Mint 14.04 上也遇到了同样的错误 我正在用 jquery 做一些项目。起初,直到我执行 POST 请求并使用
complete()
回调方法处理 jqXHR 对象(请参阅弃用通知)时,错误才出现,这就是它在控制台中出现的方式。
但症状始终存在:
我的浏览器有点挂起,所以我每次都必须按 F5。我评论了一些alert(JSON.stringify(jqXHR))
,错误消失了,而不是症状。
我检查了Chrome和Chromium,没有这样的错误。 我无法说出原因是什么,但我只需重新启动浏览器即可解决问题,但可能是 Firefox 的缓存问题
希望能有所帮助。
我们在一个框架集环境中拥有这个,其中我们持有对一些先前加载的、现在无效并被丢弃的框架内容的引用(通过一些 jQuery 对象),这些内容已经被刷新,因此不再存在。
在访问 jQuery 框架对象之前刷新它修复了它。
我今天遇到了这个问题(在firefox 126中),发现我在iframe中有一个回调,在iframe卸载后试图从父页面调用。
我通过将回调函数的调用移动到父页面来修复它。
即来自:
parent.js
:
[...]
function this_will_be_calledback(){
do_stuff();
}
function do_stuff_after_time(cb){
setTimeout(cb,10000);
}
[...]
iframe.js
:
function foo(){
do_stuff_after_time(()=>{parent.this_will_be_calledback()});
}
我把它改为:
parent.js
:
[...]
function this_will_be_calledback(){
do_stuff();
}
function do_stuff_after_time(cb){
setTimeout(cb,10000);
}
function caller(){
do_stuff_after_time(()=>{this_will_be_calledback()});
}
[...]
iframe.js
:
function foo(){
parent.caller();
}
我没有将
do_stuff_after_time
和 caller
更改为一个函数,因为其中还有一些其他奇怪的代码分支,但它可能对你有用。
我不知道为什么会这样,但我相信这与 iframe 被卸载以及回调尝试在其上下文中运行有关。