我想使用一个小的greasemonkey脚本来延迟特定的一组网页。基本上,如果加载的网站是一组页面的一部分,那么我想延迟页面加载的时间。例如如果正在加载的页面是“http://www.a.com/","http://www.a.com/b”等,那么我想延迟30秒的负载。特定页面页面的Javascript页面加载延迟
回答
假设和酒廊的评论是正确的:。
“的海报想要什么看xkcd.com/862(将鼠标悬停在图片看推理)事实上,我发现这个问题,而谷歌搜索了整整一样的东西。”
然后这在Greasemonkey中是不可能的。原因是GM在页面加载后触发(除了任何慢速图片或AJAX调用)。因此,用户会看到该页面,然后它会闪烁30秒空白......但是,只有在快速眼球才会看到太多。 ;)
更新:这是现在可以在Greasemonkey的(与@run-at document-start
指令 - 增加了2011年8月)。见this answer for an example。
请注意,XKCD的创造者使用良好的老式意志力来实现他的“简单的30秒延迟”。从his blog entry:
“很多人都问我,因为我用来实现在今天的漫画的Alt-文本限制系统
...
我做了一个规则,尽快。我完成了任何任务,或厌倦了它,我不得不关闭我的电脑。“
参见:"Browser extension (or other software) to delay page load" - 现在有链接到人们对于这创造适当的扩展。
如果你的推理是你需要一些时间让一些元素在加载之前加载,那么你可以设置一个eventlistener,当你点击而不是在加载时触发你的函数,然后当你准备好有功能发射你只需点击页面的某个地方。 addEventListener(“click”,function,false)
如果你只是想找一个方法来让页面在设定的时间内自动加载,那么使用imacros会有更好的运气。
存在着使用覆盖要做到这一点Greasemonkey脚本: Script #1(工作在一个网站上)
我曾试图改变这一点,并与多个网站的列表,使用起来有点很粗糙上来:Script #2。我不再使用附加组件,因为脚本在某些网站上有奇怪的副作用,并可能影响性能。我相信别人可以做得更好,但如果你想自己尝试或尝试修改它,它就在那里。
对于任何不熟悉Greasemonkey的人来说,它是一个Firefox附加组件,允许您使用JavaScript的小片段修改网站,您可以自己编写网站或从库中安装。要使用这些脚本中的任何一个,您当然需要安装Greasemonkey插件(https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/)(由于缺少代表,任何具有编辑权限的人请随时链接)。
如上所述,GreaseMonkey脚本在DOMContentLoaded上执行,所以在页面加载后。
但是,事实上,您可以创建一个覆盖<div>
一段时间,它会有同样的效果。
下面是@Jonathan链接userscripts的一点改进版(其实,我自己独立写的;)
(function()
{
var timeout = 30;
var timeElapsed = timeout;
function hide()
{
document.documentElement.style.overflow = "hidden";
var newdiv = document.createElement('div');
newdiv.id = "leechblocker";
newdiv.style.width = "100%";
newdiv.style.minHeight = "100%";
newdiv.style.position = "fixed";
newdiv.style.top = "0px";
newdiv.style.left = "0px";
newdiv.style.zIndex = 10000;
newdiv.style.backgroundColor = "white";
newdiv.style.display = "block";
newdiv.style.overflow = "hidden";
newdiv.style.textAlign = "center";
newdiv.style.paddingTop = (window.innerHeight/2-10)+"px";
newdiv.innerHTML = "Wait <span id='counter'>"+timeElapsed+"</span> seconds...";
document.body.appendChild(newdiv);
}
function updateCounter()
{
var counter = document.getElementById("counter");
timeElapsed--;
counter.innerHTML = timeElapsed;
}
function unhide()
{
document.documentElement.style.overflow = "auto";
var leechDiv = document.getElementById("leechblocker");
leechDiv.parentNode.removeChild(leechDiv);
}
hide();
window.setInterval(updateCounter,1000);
window.setTimeout(unhide,timeout*1000);
}());
- 1. jquery页面加载延迟
- 2. 延迟加载Silverlight页面
- 3. 延迟加载jsp页面?
- 4. 延迟页面关闭Javascript?
- 5. 延迟重定向页面
- 6. 延迟加载非HTML页面
- 7. ASP.NET网站:页面加载延迟
- 8. 如何改善页面加载延迟?
- 9. 在离线html页面加载延迟
- 10. React组件延迟页面加载
- 11. 如何加载仅特定页面上的某些JavaScript作为延迟,并不是所有的页面
- 12. 从css页面延迟
- 13. 如何提高特定页面的页面加载速度
- 14. 下载javascript加载页面
- 15. 使用JavaScript或jQuery延迟加载页面内容
- 16. JQuery UI在页面加载时附加一个可拖动的页面特定的页面加载
- 17. 页面内的AJAX加载页面
- 18. 页面只加载页面的一半
- 19. 特定页面
- 20. 页面加载
- 21. 页面加载
- 22. 加载页面
- 23. 页面加载
- 24. 页面加载
- 25. 隐藏特定页面的加载栏
- 26. 加载一个特定的PHP页面
- 27. 从javascript加载asp.net页面
- 28. 使用Javascript加载页面
- 29. Javascript页面加载总数
- 30. javascript - 防止页面加载
你能解释这一点进一步?你正试图让你的页面加载30秒?为什么? – 2011-02-18 15:41:39
问题不明确。 “延迟负载”是什么意思?延迟加载的开始,只是咀嚼浏览器周期额外的30秒,或什么?你希望通过这样的延迟完成什么? – 2011-02-18 23:57:23