如何用Greasemonkey点击“显示更多”链接?

时间:2013-04-25 20:42:22

标签: javascript ajax click greasemonkey

访问a BBC episodes page时,我希望从Greasemonkey脚本中调用“SHOW MORE”。
我尝试了六种方法而没有工作。我想我错过了一些基本的东西。

由于

1 个答案:

答案 0 :(得分:2)

这是一个非常普遍的问题;有关如何解决此类问题的详细信息,请参阅"Choosing and activating the right controls on an AJAX-driven site"

鉴于配方,唯一的艺术/技巧/难点部分是选择正确的jQuery选择器。在这种情况下,“显示更多”链接可以可靠地使用:

#synopsis div.copy a.show-more-truncate


因此,完整的工作脚本将是:

// ==UserScript==
// @name     _BBC episode, click "Show More" link
// @include  http://www.bbc.co.uk/programmes/*
// @require  http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
// @require  https://gist.github.com/raw/2625891/waitForKeyElements.js
// @grant    GM_addStyle
// ==/UserScript==
/*- The @grant directive is needed to work around a design change
    introduced in GM 1.0.   It restores the sandbox.
*/

waitForKeyElements (
    "#synopsis div.copy a.show-more-truncate", clickShowMoreLink, true
);

function clickShowMoreLink (jNode) {
    var clickEvent = document.createEvent('MouseEvents');
    clickEvent.initEvent ("click", true, true);
    jNode[0].dispatchEvent (clickEvent);
}