ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javascript-动态创建的iframe用于通过Firebug下载文件触发器onload,但并非没有

2019-11-06 20:35:01  阅读:277  来源: 互联网

标签:download wav iframe firebug javascript


编辑:由于此问题现在已“解决”到工作点,我希望获得有关原因的信息.有关修复程序,请参见下面的评论.

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

HTML(隐藏的唯一属性是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 + "' onl oad='notifyLoaded()'></iframe>";
document.getElementById("audioContainer").innerHTML = content;

以及notifyLoaded的内容:

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

我也尝试通过document.createElement创建iframe,但是发现了相同的行为.每次启用Firebug时,触发的onload都会触发,并且永远不会没有触发.

编辑:
修复了有关如何声明iframe的信息,并添加了回调函数代码.不,这里没有console.log调用.

解决方法:

旧问题,但以供将来参考:
据我的经验onLoad并不要求下载文件.解决它的方法是像在这里一样使用cookie http://gruffcode.com/2010/10/28/detecting-the-file-download-dialog-in-the-browser/

标签:download,wav,iframe,firebug,javascript
来源: https://codeday.me/bug/20191106/2000838.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有