首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >http-equiv=“刷新”上的Javascript钩子

http-equiv=“刷新”上的Javascript钩子
EN

Stack Overflow用户
提问于 2012-12-16 20:24:44
回答 2查看 2.7K关注 0票数 0

当页面打开时,我使用下面的元头文件来下载文件:

代码语言:javascript
复制
<meta http-equiv="refresh" content="3;URL=SomeFileName" />

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

EN

回答 2

Stack Overflow用户

发布于 2012-12-16 23:13:57

您可以使用setTimeout()来计时,但正如注释中所述,在这种情况下使用JavaScript重定向要好得多。示例:

代码语言:javascript
复制
setTimeout(function(){
    /*
     * code here will be executed before the download
     */
    document.location = "downloadurl";
}, 3000); // 3000ms = 3s
票数 1
EN

Stack Overflow用户

发布于 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

基本上,当用户试图关闭或离开页面时,会触发一个事件。您可以连接到该事件以进行自定义。

代码语言:javascript
复制
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()方法的调用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13901262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档