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/