Jquery 尝试单击()事件时发生Greasemonkey错误
我尝试单击页面上的按钮,可以获得对象的长度没有问题,但当我尝试单击该项目时,出现以下错误:Jquery 尝试单击()事件时发生Greasemonkey错误,jquery,greasemonkey,Jquery,Greasemonkey,我尝试单击页面上的按钮,可以获得对象的长度没有问题,但当我尝试单击该项目时,出现以下错误: Error: uncaught exception: [Exception... "Component is not available" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: resource://greasemonkey/runScript.js :: <TOP_LEVEL>
Error: uncaught exception: [Exception...
"Component is not available" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)"
location: "JS frame :: resource://greasemonkey/runScript.js :: <TOP_LEVEL> :: line 3" data: no]
错误:未捕获异常:[异常。。。
“组件不可用”nsresult:“0x80040111(NS\u错误\u不可用)”
位置:“JS帧::resource://greasemonkey/runScript.js 第3行“数据:否]
以下是我正在使用的代码:
(function(){
$('body').append('<input type="button" id="autobop" value="autobop" />');
$('#autobop').click(function(){
//buJmnfJwRG
alert($('#buJmnfJwRG').length);
$('#buJmnfJwRG').click(); // error occurs here
/*
setInterval(function() {
}, 2000);*/
});
})();
(函数(){
$('body')。追加('');
$('#autotop')。单击(函数(){
//buJmnfJwRG
警报($('buJmnfJwRG').length);
$('#buJmnfJwRG')。单击();//此处发生错误
/*
setInterval(函数(){
}, 2000);*/
});
})();
$(文档).ready(函数(){
$('body')。追加('');
$('#autotop')。单击(函数(){
//buJmnfJwRG
警报($('buJmnfJwRG').length);
$('buJmnfJwRG')。单击();
});
});
链接到目标页面。#buJmnfJwRG
来自哪里,它是在目标页面上还是由脚本添加的
除非#buJmnfJwRG
单击,否则事件处理程序是由脚本使用jQuery创建的,您不能使用$('#buJmnfJwRG')激活它。单击()代码>(通常)
尝试:
我有一个dev看看
$(document).ready(function(){
$('body').append('<input type="button" id="autobop" value="autobop" />');
$('#autobop').click(function(){
//buJmnfJwRG
alert($('#buJmnfJwRG').length);
$('#buJmnfJwRG').click();
});
});
$(文档).ready(函数(){
$('body')。追加('');
$('#autotop')。单击(函数(){
//buJmnfJwRG
警报($('buJmnfJwRG').length);
$('buJmnfJwRG')。单击();
});
});
请注意,您既不需要$(document).ready()
也不需要$(function(){…})()代码>在Greasemonkey脚本中。默认情况下,GM在正确的点激发。现在没有错误,但没有发生任何事情,并且不是由我的脚本创建的,它表明正在单击对象,但正在进行其他操作。链接到目标页面或将其代码保存到并链接到该页面。我只是想制作一个auto-awesome for,实际上我想让它成为一个bookmarklet,因此它是独立于浏览器的。不幸的是,该网站是如此具有侵略性和垃圾,以至于我无法关闭足够的防火墙使其工作。所以,我不能再帮你解决这个问题了,但是他们显然做的是非标准的,也是基于flash的东西。所以,仅仅点击一下是不够的。这与-,在功能上与OP的代码相同。它无法解决问题。
$('#autobop').click ( function () {
//buJmnfJwRG
alert ( $('#buJmnfJwRG').length );
var clickEvent = document.createEvent ('MouseEvents');
clickEvent.initEvent ('click', true, true);
$('#buJmnfJwRG')[0].dispatchEvent (clickEvent);
} );
$(document).ready(function(){
$('body').append('<input type="button" id="autobop" value="autobop" />');
$('#autobop').click(function(){
//buJmnfJwRG
alert($('#buJmnfJwRG').length);
$('#buJmnfJwRG').click();
});
});