我正在使用以下元标题,以便在打开页面时下载文件:
<meta http-equiv="refresh" content="3;URL=SomeFileName" />
有没有办法在3秒过后运行一些javascript代码,即在浏览器开始下载SomeFileName之前?
答案 0 :(得分:1)
您可以使用setTimeout()
对其进行计时,但正如评论中所述,在这种情况下,使用JavaScript重定向要好得多。例如:
setTimeout(function(){
/*
* code here will be executed before the download
*/
document.location = "downloadurl";
}, 3000); // 3000ms = 3s
答案 1 :(得分:1)
虽然纯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;
};
这个函数应该返回一个字符串或什么也不返回。如果是字符串,则会出现一个对话框,用于确认导航;如果没什么,即。未定义,不会发生拦截。
同样注意:
自2011年5月25日起,HTML5规范声明在此事件期间可能会忽略对window.showModalDialog(),window.alert(),window.confirm()和window.prompt()方法的调用。