当页面打开时,我使用下面的元头文件来下载文件:
<meta http-equiv="refresh" content="3;URL=SomeFileName" />有没有办法让一些javascript代码在3秒后运行,也就是在浏览器开始下载SomeFileName之前?
发布于 2012-12-16 23:13:57
您可以使用setTimeout()来计时,但正如注释中所述,在这种情况下使用JavaScript重定向要好得多。示例:
setTimeout(function(){
/*
* code here will be executed before the download
*/
document.location = "downloadurl";
}, 3000); // 3000ms = 3s发布于 2012-12-16 23:27:31
虽然在大多数情况下,纯javascript重定向函数会是更好的解决方案,但有时您可能需要它。
看看这些:
http://www.w3schools.com/jsref/event_onunload.asp
Alerts when navigating away from a web page
http://msdn.microsoft.com/en-us/library/ie/ms536907(v=vs.85).aspx
https://developer.mozilla.org/en-US/docs/DOM/window.onbeforeunload
基本上,当用户试图关闭或离开页面时,会触发一个事件。您可以连接到该事件以进行自定义。
window.onbeforeunload = function () {
var who = ["lover", "friend"][(Math.floor(Math.random()*2)+1)];
return "Goodbye my " + who;
};此函数应返回一个字符串或不返回任何内容。如果它是一个字符串,则会出现一个对话框,用于确认导航离开;如果它是nothing,即未定义,则不会发生拦截。
另请注意:
自2011年5月25日起,HTML5规范规定在此事件期间可以忽略对window.showModalDialog()、window.alert()、window.confirm()和window.prompt()方法的调用。
https://stackoverflow.com/questions/13901262
复制相似问题