0

次のコードを実行するグ​​リースモンキー スクリプトを作成しようとしています。私はそれをテストしましたが、URL (javascript: blah blah;) からもちろんコメントを差し引いて間違いなく動作します:

// Your country code
var cc = 'net';

var j = document.getElementsByTagName('td');
for (i=0; i <= j.length; i++) {
    if (j[[i]].innerHTML.indexOf('points - punishment #A') > 0 && j[[i]].innerHTML.length == 30) {
        var k = j[[i]].innerHTML;
        j[[i]].innerHTML = k.slice(0, 23) + '<a href="http://www.example.' + cc + '/admin.php?screen=affront_tool&mode=view_punishment&punishment_id=' + k.slice(25) + '">' + k.slice(23) + '</a>';
    }
    else if (j[[i]].innerHTML.indexOf('points - punishment #A') > 0 && j[[i]].innerHTML.length == 29) {
        var k = j[[i]].innerHTML;
        j[[i]].innerHTML = k.slice(0, 22) + '<a href="http://www.example.' + cc + '/admin.php?screen=affront_tool&mode=view_punishment&punishment_id=' + k.slice(24) + '">' + k.slice(22) + '</a>';
    }
    else if (j[[i]].innerHTML.indexOf('points - punishment') > 0 && j[[i]].innerHTML.length <= 67) {
        var k = j[[i]].getElementsByTagName('a')[0];
        var l = 'http://www.example.' + cc + '/admin.php?screen=affront_tool&mode=view_punishment&punishment_id=' + k.getAttribute('href').slice(19);
        k.setAttribute('href', l);
    }
}

残念ながら、このスクリプトは、ロード後 10 秒 (約 3 秒と予想) まで動的に生成されたページの要素に対して機能するため、処理が困難になります。setTimeout を 1 万ミリ秒に設定して、スクリプトを「onload」属性として本文に添付するさまざまな方法を試しましたが、役に立ちませんでした。おそらく、別の方法を試す必要がありますか、それともプロセスで単純な間違いを繰り返しましたか? 誰かがそれを行う方法を教えてもらえますか?

4

1 に答える 1

2

ページにjqueryライブラリを含め、コードを関数にしてから、次のようにします。

$(document).ready(function () {
           setTimeout('myFunction();', 10000);
        });

この場合、関数名は「myFunction()」です。

于 2011-03-06T01:47:05.427 に答える