在window.open之后的Javascript调用函数

pm1*_*m13 12 javascript load window

我试图在window.open函数完全加载后调用一个函数.

但是,使用onload函数的过程很快就会被调用.正在点击的URL会打开一个Excel电子表格,下载时间可能为2秒到1分钟.

一旦调用了window.open函数,就会调用onload函数.但是,我需要知道何时打开了Excel文档 - 而不是在URL被点击时.

我试过设置一个间隔但是没有被调用:

w = window.open(url,'_parent',false);   

w.onload = function(){
    console.log('here');
    setInterval(function(){
        alert('Hi');
    },10);
Run Code Online (Sandbox Code Playgroud)

Den*_*ret 5

首先请注意,为了不因跨域限制而被阻止(或不必在服务器上参数化 CORS 标头),您必须:

  • 从同一个域和同一个端口提供您的主页和弹出内容(您的 excel 文件)
  • 打开你的主页http://而不是file://

如果满足这些条件,最好的解决方案是使用 jquery,因为它的加载函数会等待“直到所有资产(例如图像)都被完全接收”:

<html>
    <head>
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    </head>
<body>
<script>
var popup = window.open('popup.html');
$(popup.document).load(function() {
    alert('loaded');
    // do other things
});
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

小心你的全局方案:当你认为每个浏览器/配置“打开”文件时,它们可能会做不同的事情。有没有办法用一个简单的检测open,如果他们决定将其关闭,有没有合适的插件,只需下载它。