我正在研究一个问题,即在删除包含iframe的iframe之后,canvas应用程序会继续播放声音。问题出现在Microsoft IE和Edge中,但不会出现在Firefox或Chromium中。
我没有使用canvas的经验,也不知道如何加载和连接运行应用程序的画布和脚本,因此这可能与画布本身无关。我不知道。
通过更多细节,一个页面使用iframe嵌入另一个页面。嵌入式页面有一个使用画布和播放声音的应用程序。使用开发人员工具,当我删除整个iframe时画布关闭,但声音继续播放。我必须重新加载页面才能停止声音。
这似乎是IE和Edge中的一个错误?
我正在尝试修复的网页上有一个iframe,其中包含iframe包含应用程序的页面(我无能为力)。是否可以以任何方式访问保持播放声音的资源,启动了两层被删除的iframe?
答案 0 :(得分:4)
我们遇到了类似的问题,从DOM中删除iframe并没有阻止某些声音播放。看起来Edge可能有一个问题,即在删除iFrame时没有调度正确的卸载事件......
我们的解决方案是在从DOM中删除实际的HTMLElement之前清除其src
属性来删除iFrame内容。
document.querySelector('#myIFrame').src = '';
演示(使用Edge浏览器运行):https://embed.plnkr.co/vb08Tc1hJuVqtf4ejsJk/