帮助解决第一个Greasemonkey脚本问题

时间:2011-06-24 10:07:20

标签: jquery greasemonkey

我正在尝试做我的第一个油脂剧本。我对jquery和javascript很新,所以对我来说很容易。

这是我到目前为止所拥有的。

setTimeout(function(){
    $('a').each(function(i){
        if(this.href && this.innerHTML.indexOf('load more comments') > -1){
            toggle(this);
        }
    });
}, 4000);

这里的目标是点击样本reddit页面上的所有“加载更多评论”页面,然后每隔4秒循环执行一次。

http://www.reddit.com/r/AskReddit/comments/i7hb5/why_assign_gender_to_public_bathrooms_if_there_is/

现在,根本没有任何事情发生。我不确定如何排除故障。脚本根本没有启动吗? indexOf是点击链接的正确语法吗?

是否有一个在线指南,虽然我写了一个像这样的基本的greasemoney / jquery脚本,但是会引导我?

任何帮助非常感谢。谢谢!

编辑:

根据Tomalak的回应,

// ==UserScript==
// @name           load all page comments
// @require        http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js
// @namespace      none
// @include        http://www.reddit.com/*
// ==/UserScript==

setInterval( function () {
  $('a:contains(load more comments)').click();
}, 4000);

1 个答案:

答案 0 :(得分:2)

比你想象的容易得多:

setInterval( function () {
  $('a:contains(load more comments)').click();
}, 4000);

请注意,我使用setInterval代替setTimeout

jQuery的工作方式是在每个匹配的元素上调用click,即在这种情况下不需要each()。另请参阅docs on the :contains selector