在访问BBC 剧集页面时,我希望从 Greasemonkey 脚本中调用“SHOW MORE”。
我已经尝试了六种方法,但都没有奏效。我想我缺少一些基本的东西。
谢谢
在访问BBC 剧集页面时,我希望从 Greasemonkey 脚本中调用“SHOW MORE”。
我已经尝试了六种方法,但都没有奏效。我想我缺少一些基本的东西。
谢谢
这是一个非常普遍的问题;有关如何解决此类问题的更多详细信息,请参阅“在 AJAX 驱动的站点上选择和激活正确的控件” 。
鉴于该配方,唯一的艺术/技能/困难部分是选择正确的 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);
}