jQuery + Greasmonkey:mouseover() 不是函数
jQuery + Greasmonkey: mouseover() is not a function
为了使我的脚本更加不可检测 健壮,我决定使用更多的人工事件,即鼠标悬停、鼠标按下、鼠标弹起、鼠标移出。由于这些是 jQuery 依赖项,我添加了
// @require https://code.jquery.com/jquery-3.1.1.slim.min.js
到我的脚本的顶部,并且按照 Greasmonkey Wiki 中的说明包括以下行:
this.$ = this.jQuery = jQuery.noConflict(true);
当我 运行 这个脚本时,我在控制台中得到这个错误:
Uncaught TypeError: document.getElementsByClassName(...)[0].mouseover is not a function
这会让我相信 jQuery 尚未加载到脚本安装中。我在没有 'noConflict' 的情况下尝试了相同的代码,它有效地破坏了网站,并且仍然返回上述错误。
这是我的代码:
else if (document.getElementsByClassName('thumb-container active')[0] == null &&
document.getElementsByClassName('feed-ajax-next')[0] != null){
document.getElementsByClassName('feed-ajax-next')[0].mouseover();
console.log("M_over");
document.getElementsByClassName('feed-ajax-next')[0].mousedown();
console.log("M_down");
document.getElementsByClassName('feed-ajax-next')[0].mouseup();
console.log("M_up");
document.getElementsByClassName('feed-ajax-next')[0].mouseout();
console.log("M_out");
document.getElementsByClassName()
不是 return 一个 jQuery 对象,但是 mouseover()
和其他函数是 jQuery 函数。
在这种情况下,您需要使用 jQuery('.feed-ajax-next')
将元素作为 jQuery 对象获取,然后使用这样的函数 - jQuery('.feed-ajax-next').mouseover()
您可以在此处阅读有关 jQuery 个对象的更多信息:https://learn.jquery.com/using-jquery-core/jquery-object/
为了使我的脚本更加不可检测 健壮,我决定使用更多的人工事件,即鼠标悬停、鼠标按下、鼠标弹起、鼠标移出。由于这些是 jQuery 依赖项,我添加了
// @require https://code.jquery.com/jquery-3.1.1.slim.min.js
到我的脚本的顶部,并且按照 Greasmonkey Wiki 中的说明包括以下行:
this.$ = this.jQuery = jQuery.noConflict(true);
当我 运行 这个脚本时,我在控制台中得到这个错误:
Uncaught TypeError: document.getElementsByClassName(...)[0].mouseover is not a function
这会让我相信 jQuery 尚未加载到脚本安装中。我在没有 'noConflict' 的情况下尝试了相同的代码,它有效地破坏了网站,并且仍然返回上述错误。
这是我的代码:
else if (document.getElementsByClassName('thumb-container active')[0] == null &&
document.getElementsByClassName('feed-ajax-next')[0] != null){
document.getElementsByClassName('feed-ajax-next')[0].mouseover();
console.log("M_over");
document.getElementsByClassName('feed-ajax-next')[0].mousedown();
console.log("M_down");
document.getElementsByClassName('feed-ajax-next')[0].mouseup();
console.log("M_up");
document.getElementsByClassName('feed-ajax-next')[0].mouseout();
console.log("M_out");
document.getElementsByClassName()
不是 return 一个 jQuery 对象,但是 mouseover()
和其他函数是 jQuery 函数。
在这种情况下,您需要使用 jQuery('.feed-ajax-next')
将元素作为 jQuery 对象获取,然后使用这样的函数 - jQuery('.feed-ajax-next').mouseover()
您可以在此处阅读有关 jQuery 个对象的更多信息:https://learn.jquery.com/using-jquery-core/jquery-object/