gpt4 book ai didi

javascript - 动态创建的用于下载文件的 iframe 会触发带有 Firebug 的 onload 但并非没有

转载 作者:行者123 更新时间:2023-11-29 10:25:29 24 4
gpt4 key购买 nike

编辑:由于这个问题现在已经“解决”到可以工作的地步,我正在寻找有关原因的信息。有关修复,请参阅下面我的评论。

我有一个 Web 应用程序,它重复动态地(在超时后或根据用户指示)将 wav 文件下载到 iframe 中,以触发默认音频播放器播放它们。该应用程序仅针对 FF 2 或 3。为了确定文件何时完全下载,我希望对 iframe 使用 window.onload 处理程序。基于this stackoverflow.com answer我每次都在创建一个新的 iframe。只要使用该应用程序在浏览器上启用了 Firebug ,一切都很好。没有 Firebug ,onload 永远不会触发。 firebug的版本是1.3.1,我测试过Firefox 2.0.0.19和3.0.7。有什么想法可以让 iframe 的 onload 在 wav 文件下载后可靠地触发吗?还是有另一种方式来表示下载完成?这是相关代码:

HTML(hidden 的唯一属性是 display:none;):

<div id="audioContainer" class="hidden">
</div>

JavaScript(也可以使用 jQuery,但根据我的阅读,innerHTML 比 html() 更快):

waitingForFile = true; // (declared at the beginning of closure)
$("#loading").removeClass("hidden");
var content = "<iframe id='audioPlayer' name='audioPlayer' src='" +
/path/to/file.wav + "' onload='notifyLoaded()'></iframe>";
document.getElementById("audioContainer").innerHTML = content;

以及notifyLoaded的内容:

function notifyLoaded() {
waitingForFile = false; // (declared at beginning of the closure)
$("#loading").addClass("hidden");
}

我也曾尝试通过 document.createElement 创建 iframe,但我发现了相同的行为。 onload 每次都在启用 firebug 的情况下触发,并且从不启用它。

编辑:修复iframe声明方式信息,增加回调函数代码。不,这里没有 console.log 调用。

最佳答案

老问题但供将来引用:就我的经验而言,文件下载不会调用 onLoad。解决它的一种方法是像他们在这里一样使用 cookie http://gruffcode.com/2010/10/28/detecting-the-file-download-dialog-in-the-browser/

关于javascript - 动态创建的用于下载文件的 iframe 会触发带有 Firebug 的 onload 但并非没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2456695/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com