javascript挂钩http-equiv =“刷新”

时间:2012-12-16 12:24:44

标签: javascript html meta-tags

我正在使用以下元标题,以便在打开页面时下载文件:

<meta http-equiv="refresh" content="3;URL=SomeFileName" />

有没有办法在3秒过后运行一些javascript代码,即在浏览器开始下载SomeFileName之前?

2 个答案:

答案 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()方法的调用。