Internet explorer 在MicrosoftIE和Edge中,包含声音的iframe被删除后,应用程序会继续播放声音

Internet explorer 在MicrosoftIE和Edge中,包含声音的iframe被删除后,应用程序会继续播放声音,internet-explorer,audio,iframe,canvas,microsoft-edge,Internet Explorer,Audio,Iframe,Canvas,Microsoft Edge,我正在研究一个问题,即画布应用程序在包含它的iframe被删除后仍保持播放声音。这个问题发生在微软IE和Edge中,但在Firefox或Chromium中没有 我没有画布方面的经验,也不知道如何加载和连接画布和运行应用程序的脚本,因此这可能与画布本身无关。我不知道 再详细一点,一个页面使用iframe嵌入另一个页面。嵌入式页面有一个使用画布和播放声音的应用程序。使用开发工具,当我移除整个iframe时,画布关闭,但声音继续播放。我必须重新加载页面才能停止声音 这似乎是IE和Edge中的一个bug

我正在研究一个问题,即画布应用程序在包含它的iframe被删除后仍保持播放声音。这个问题发生在微软IE和Edge中,但在Firefox或Chromium中没有

我没有画布方面的经验,也不知道如何加载和连接画布和运行应用程序的脚本,因此这可能与画布本身无关。我不知道

再详细一点,一个页面使用iframe嵌入另一个页面。嵌入式页面有一个使用画布和播放声音的应用程序。使用开发工具,当我移除整个iframe时,画布关闭,但声音继续播放。我必须重新加载页面才能停止声音

这似乎是IE和Edge中的一个bug


我试图修复的网页有一个iframe,其中包含包含应用程序的iframe(对此我无能为力)。是否可以以任何方式访问保持播放声音的资源,启动两层已删除的iframe?

我们遇到了一个类似的问题,即从DOM中删除iframe并不会停止播放某些声音。看起来Edge可能存在一个问题,即在删除iFrame时没有调度正确的卸载事件

我们的解决方案是先清除iFrame的
src
属性,然后再从DOM中删除实际的HTMLElement,从而删除iFrame内容

document.querySelector('#myIFrame').src = '';

演示(使用Edge browser运行):

我们遇到了一个类似的问题,从DOM中删除iframe并不会停止播放某些声音。看起来Edge可能存在一个问题,即在删除iFrame时没有调度正确的卸载事件

我们的解决方案是先清除iFrame的
src
属性,然后再从DOM中删除实际的HTMLElement,从而删除iFrame内容

document.querySelector('#myIFrame').src = '';

演示(使用Edge browser运行):

你能发布页面或代码吗?@Patrick我在这里创建了一个基本示例:-虽然在我的特定应用程序中,情况实际上更糟,因为即使在单击时音频也不会停止。它还将在返回页面时创建多个音频实例,由于某些原因,在示例中不会复制这些实例。Kim下面的解决方案确实有效。你能发布页面或代码吗?@Patrick我在这里创建了一个基本示例:-虽然在我的特定应用程序中,情况实际上更糟,因为即使在单击时音频也不会停止。它还将在返回页面时创建多个音频实例,由于某些原因,在示例中不会复制这些实例。不过,金正日下面的解决方案确实有效。