下面的 JavaScript 代码有两个步骤。
第 1 步:转到 .pdf、.doc、.exe 或非 html 原生文件。如果 location.href 已经接管了浏览器窗口,则无需执行第 2 步。(PDF 通常接管浏览器窗口)。大多数其他事情都会启动下载管理器进程。比如.exe。但是有一些东西,例如 word 文档,可以下载或直接显示在浏览器窗口中,具体取决于浏览器设置。我希望它做 hef.location 会做的事情。
第2步:但是如果在该过程完成后它正在下载诸如.exe之类的文件,则转到主页。
或者在第 1 步和第 2 步之间仅等待 5 秒的解决方案似乎大部分时间都有效。但在较慢的连接上,它并不总是有效。然后它在没有完成第一个 href.location 调用的情况下进入主页,他们永远不会看到 PDF,只看到主页。
仅供参考...我将它们包装在 setTimeOut 中的原因与这个 firefox 问题有关。 堆栈溢出:864633 分配到文档位置-href-without-clobbering-history
我的问题: 有没有办法判断 location.href 进程何时完成?
<script language="JavaScript"><!--
function windowOnLoad() {
setTimeout(function(){
location.href='/someurl/something.pdf'; //sometimes this is .doc file
},0);
setTimeout(function(){
location.href='/homepage';
},5000);
return false;
}
//-->
</script>