(接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,只需将类名称displaydiscog用于选择器。像这样:

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/

10-11 04:22