延迟后运行工作 javascript onload 的最佳方法
我正在尝试制作一个将运行以下代码的greasemonkey 脚本。我已经测试过它,它肯定可以通过 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);
}
}
不幸的是,这个脚本适用于加载后十秒内动态生成的页面元素(预计大约三秒),这使得事情难的。我尝试了多种方法将脚本作为“onload”属性附加到正文,setTimeout 为一万毫秒,但无济于事。也许我应该尝试不同的方法,或者我在这个过程中重复了一个简单的错误?有人可以告诉我他们会怎么做吗?
I am trying to make a greasemonkey script that will run the following code. I have tested it and it definitely works via URL (javascript: blah blah;) minus the comment of course:
// 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);
}
}
Unfortunately this script works on an element of the page dynamically generated up to ten seconds after load (expect about three), which makes things difficult. I've tried numerous ways of attaching the script as an "onload" attribute to the body with a setTimeout of ten thousand ms, to no avail. Perhaps I should be trying a different method, or I've repeated a simple mistake in the process? Could someone show me how they would do it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我将在您的页面上包含 jquery 库,并将您的代码放入函数中,然后执行以下操作:
在本例中,函数名称为“myFunction()”
I would include the jquery library on your page and make your code into a function then do:
In this case the function name is "myFunction()"