这个问题不是jQuery.fn.ready()
。
我打开一个带window.open()
的新窗口进行文件下载,并希望在下载开始后关闭窗口。大多数浏览器将继续下载文件,所以我不需要等到下载完成。
问题是当我用jQuery.fn.ready()
关闭窗口时,会立即跳过文件下载。
这是我尝试过的失败:
var w = window.open(...);
$(w).load(); // failed
$(w.document).load(); // failed
$(w.document).contents().load(); // failed
$(w.document).contents().find('body').load(); // failed
修改
添加jsFiddle以便于演示:http://jsfiddle.net/vicary/Yjkt8/1
编辑2:
通过Jonny Sooter的回答,用工作版http://jsfiddle.net/vicary/Yjkt8/4更新了jsFiddle。
答案 0 :(得分:1)
如果您知道下载时间,可以试试这个。
jQuery(window).load(function () {
alert('page is loaded');
setTimeout(function () {
alert('page is loaded and 1 minute has passed');
}, 60000);
});
答案 1 :(得分:1)
$(function() {
$('button').click(function() {
var w = window.open(),
d = w.document,
s = d.createElement("script");
s.type = "text/javascript";
s.innerHTML = ";(function(){window.close();})();";
d.getElementsByTagName("head")[0].appendChild(s);
});
});
<强>更新强>
对于chrome,您可以尝试:
window.open('', '_self', ''); //bug fix
window.close();
或尝试:
window.self.close();