您如何知道何时从JavaScript开始下载?
基本上,我想等待IE保存对话框打开,然后运行下一行JavaScript。您如何知道何时从JavaScript开始下载?
喜欢的东西:
`window.open(URL,"_self",...);`
window.alert("save dialog started");
可以这样做?由于
GRAE
我想出了这一点:
var iframe = document.getElementById("dFrameID");
if(iframe.readyState=='complete')
window.close();
其他 等待,并再次调用它。
似乎工作正常。
这只是IE解决方案。祝FF好运。
我还没有测试过这个,但你可能能够使用setTimeout(...)去那里。我已经使用它(仅在IE中)等待打印预览对话框关闭。
诀窍是在这五个循环之间有足够的时间等待一个循环(例如五次)以保证保存对话框已经出现。一旦对话框出现,所有的JavaScript处理应该冻结。然后,当这个盒子关闭时,javascript会再次启动,并且你的setTimeout处理程序将会执行。
再一次,我不知道这是否会实际工作,它可能会根据您使用的浏览器而有所不同。由于您的下载窗口和警报窗口是分开的,因此也很复杂。
JavaScript和浏览器不会在这个级别上进行交互。
告诉我有关它!大声笑 – 2010-08-30 21:05:58
在你指出“FF祝你好运”时,浏览器支持什么的区别是问题所在。
如果您正在寻找来自同一服务器上托管的Iframe的完整内容。你可以在iframe文件上有一个脚本与父类进行通信... IE parent.yourfunction(); ...如果域不相同,则在帧或Iframe之间不允许通信。
它是在相同的域名,如果有帮助。 – 2011-08-04 13:26:44
如果我做一些像父母一样的事情。你的iframe函数(),我怎么知道什么时候触发函数。我将不得不在iframe的文档中触发下载,然后以某种方式知道何时下载足够远以至于浏览器可以关闭。 – 2011-08-04 13:29:59
如果您要下载的内容类型必须经过验证,并且不会在iframe页面的onload事件之前开始。然后你需要利用你能从主机上知道的东西。一个php需要用来下载 - 而下载活动时需要创建一个文件 - 从javascript中请求该文件会告诉你下载是活动的。 – Wayne 2011-08-15 18:35:21
...但有用户选择取消... – donohoe 2010-08-30 20:08:21
@Michael的用例。然后希望他可以检测到页面已经关闭(因为取消)并做出适当的回应。 – 2010-08-30 20:10:16
@John - 也许我误解了,但取消只会关闭对话窗口,而不是页面。 setTimeout仍然会触发警报,提示信息不正确。 – donohoe 2010-08-30 20:29:51