使用 Greasemonkey (v.1.8) 和 jQuery(2.0) 和 Firefox(20.0) 我想为页面上的每首乐曲添加按钮,例如Through the Night。
我尝试了几种添加按钮的方法。它们出现,但单击它们没有效果。此代码省略了一些函数以使其专注于问题。
// ==UserScript==
// @name BBC Radio 3 Through the Night
// @namespace Zahphod.beeblebrox
// @description BBC Radio 3 Through the Night
// @include http://www.bbc.co.uk/programmes/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js
// @require https://gist.github.com/raw/2625891/waitForKeyElements.js
// @grant GM_log
// @version 0.0.01
// ==/UserScript==
(function(){
var artist;
// wait to "show more"
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);
}
// skip if not a Through the Night playlist
if ((!document.title) || (document.title.indexOf("Through the Night") < 0)) return;
$("div.full_synopsis>div>p:gt(0)").each(function() {
artist = $(this).get(0).childNodes[2].textContent.replace(/^\n/, "");
// var new_button = $("<button>Query " + artist + "</button>");
var new_button = XPCNativeWrapper.unwrap($("<button>Query " + artist + "</button>"));
$(this).append(new_button);
$(new_button).click(function(){ alert(artist);});
});
})();
建议表示赞赏。