0

我正在为 Greasemonkey/Tampermonkey 开发一个用户脚本,谷歌搜索结果页面中的标签。

插件表示脚本正在运行,脚本执行了,但是什么也没发生。

我已经打开控制台并尝试手动操作,但选择器只选择了第一个在页面中。

我试过:

$("a")
$("a.l")
$(".l")

我还尝试在文档开始、文档正文和文档结束处更改用户脚本的位置,但结果是相同的:只返回匹配的第一个元素。

脚本代码:

// ==UserScript==
// @name       Google onmousedown remove
// @version    0.1
// @include      /^https?://[a-z]*\.?google\.[a-z\.]+/search.*/
// @require http://code.jquery.com/jquery-1.9.1.min.js
// @run-at     document-end
// ==/UserScript==

$(document).ready(function (){
    $("a.l").each(function (){ $(this).removeAttr("onmousedown"); });
});

问题出在哪里?谢谢。

4

1 回答 1

3

如果您尝试$在搜索页面上输入控制台,您将看到与通常function (e,t){return new i.fn.init(e,t,u)}由 jQuery 定义的不同的内容。所以...

似乎谷歌定义了自己的$功能,并且表现不同。最简单的解决方案是jQuery显式使用而不是$: jQuery('a.l')

但它太长了,所以这里是 jQuery 的诀窍:而不是 document.ready,调用jQuery函数并将带有参数的函数传递给它$。然后在这个函数里面$等于jQuery

jQuery(function ($){
    $("a.l").each(function (){ $(this).removeAttr("onmousedown"); });
});

未经测试,但应该可以工作。

于 2013-02-05T17:38:21.793 回答