(接this question of mine)。
我一直在为metal-archives.com网站编写this userscript。
打开乐队页面(example)时,您会进入DISCOGRAPHY> COMPLETE DISCOGRAPHY。
我的脚本适用于该DISCOGRAPHY标签
及其子标签(完整的分类,主要,生活,DEMOS,MISC):
它将“审阅”列一分为二,并使表格可排序。
我最初想要(在我的润滑脂脚本中使用waitForKeyElements
实用工具)
一个函数(根据表的内容appendColumn(x)
将一列添加到表中)
在DISCOGRAPHY> COMPLETE DISCOGRAPHY中的表已完全显示后调用(我认为是:在表的最后一个标题显示之后)。
该表的最后一个标头(MISC。)的id
值已存储在以下数组位置:myArray[end]
因此,到目前为止,我的尝试失败(基于this answer用户Brock Adams在我最初的问题中提出的建议)是以下内容的变体:
function appendColumn(x){....}
function triggerCall(jNode) {
appendColumn(0); or --> jNode.appendColumn(0);
}
waitForKeyElements (myArray[end], triggerCall); // no parentheses after triggerCall
最佳答案
假设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...
//...
关于javascript - Greasemonkey(使用waitForKeyElements实用程序)-如何在屏幕上显示特定元素后调用函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26416049/