Greasemonkey(使用waitForKeyElements实用程序) – 如何在屏幕上显示特定元素后调用函数
(继续我的这个问题 )。
我一直在为这个网站metal-archives.com写这个用户脚本。
打开乐队页面( 示例 )时,您将登陆“DISCOGRAPHY”>“完整的人口统计学”。
我的脚本适用于DISCOGRAPHY选项卡
它的子标签(完整的DISCOGRAPHY,MAIN,LIVES,DEMOS,MISC):
它将“评论”列分成两部分,使表格可以排序。
我最初想要(在我的脚本中使用waitForKeyElements
中的waitForKeyElements
实用程序)
一个函数(根据它的内容向表中添加一列, appendColumn(x)
)
在DISCOGRAPHY> COMPLETE DISCOGRAPHY中的表格完全显示之后被调用(我认为这是: 在显示表格的最后一个标题之后) 。
该表的最后一个标题(MISC。)的id
值已存储在此数组位置: myArray[end]
所以,到目前为止,我失败的尝试(根据用户Brock Adams在我的初始问题中提出的答案 )是以下变体:
function appendColumn(x){....} function triggerCall(jNode) { appendColumn(0); or --> jNode.appendColumn(0); } waitForKeyElements (myArray[end], triggerCall); // no parentheses after triggerCall
假设appendColumn
函数按appendColumn
运行,重新加载; 然后你会稍微重写它并从waitForKeyElements()调用它。
你不需要大部分的rigamorole,只需使用类名display
和discog
选择器。 像这样:
waitForKeyElements (".display.discog", appendColumn); function appendColumn(jNode) { var tbl = jNode[0]; // table reference var i; var newCell, newText; var tr = tbl.tHead.children[0], th = document.createElement('th'); // THE REST OF THE FUNCTION IS THE SAME... //...