Greasemonkey脚本不工作,如预期在Reddit
Greasemonkey script not working as expected on Reddit
我创建了以下Greasemonkey脚本,以便在Firefox上为所有网站执行。这是剧本。该脚本基本上获取页面上的所有链接,并提醒链接的数量。这是我正在做的一个项目的一小部分。
window.addEventListener("load", function(e) {
var links = window.document.getElementsByTagName("a");
//window.setTimeout(function(){alert(links.length);},3000);
alert(links.length);
}, false);
脚本执行良好的一些网站,但当我访问reddit,脚本只返回2个链接,而不是所有的页面上存在的链接。当我试图搜索页面上存在的divs
时,它也只返回2。
当我研究页面源代码时,有一些与内联javascript相关的东西。但我不能完全理解它。有人能告诉我为什么这不起作用吗?
谢谢,Sid
必须是AJAX内容加载。如果您从调试器中执行代码,则可以正常工作。所以唯一的解释是,load
事件后,内容不在那里。试着把它包装在一个超时中(很难看,但这应该能证明我的观点)。
setTimeout(testLinks, 3000);
function testLinks() {
window.addEventListener("load", function(e) {
var links = window.document.getElementsByTagName("a");
//window.setTimeout(function(){alert(links.length);},3000);
alert(links.length);
}, false);
}
既然知道了问题所在,就可以按照这个SO问题中的说明创建AJAX事件侦听器。然后你可以在新内容加载时重新计算链接的数量。
JavaScript检测AJAX事件
相关文章:
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 借助asp.net验证或java脚本对多个文本进行验证
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- Java脚本时间添加
- 不显示带有本地json文件数据的谷歌地图脚本
- JQuery添加元素需要在我的js之前再次添加JQuery脚本
- 从远程脚本获取用户IP
- 如何根据时间运行不同的脚本
- 如何将字符串值从php页面发送到java脚本页面
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- 当脚本由system.js加载时,如何要求('electron')
- HTML标记在脚本标记中工作
- 是否可以控制获取哪些Google地图脚本(JavaScript API)
- 使用谷歌应用程序脚本从工作表中获取值并将其显示在文本框中
- 显示时间的脚本
- 在Reddit上,脚本如何获得评论的赞成票和反对票数
- Greasemonkey脚本不工作,如预期在Reddit
- 从Reddit提取评论分数,greasemonkey脚本
- 导入reddit JSON的Node脚本不工作