我正在尝试在window.open函数完全加载后调用函数。
但是,使用onload函数的过程很快就会被调用。正在点击的网址会打开一个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);
答案 0 :(得分:4)
首先请注意,为了在不因跨域限制而被阻止的情况下(或者不必在服务器上参数化CORS标头),您必须:
http://
而非file://
如果遵守这些条件,最好的解决方案是使用jquery,因为其load函数等待“直到所有资产(如图像)都被完全接收”:
<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>
小心你的全局方案:当你认为他们“打开”文件时,每个浏览器/配置可能会做一些不同的事情。没有办法用简单的open
检测是否他们决定解雇它,没有正确的插件,只需下载它。