草庐IT

javascript - 极其奇怪的行为 : IE11 seems to create an invisible tab when scripts are blocked and then allowed - how to fix it?

coder 2024-07-26 原文

IE 处于最佳状态:

有一个 U 盘,上面有一个 HTML 文档。当用户在 IE11 中打开它并且脚本被阻止时,会出现允许这些脚本运行的提示。

当您点击允许时,网站似乎重新加载,但看起来也像是打开/关闭了一个新标签页。

一旦启用 JS,您将被重定向到网站的在线版本。

现在,网站上有一个视频在 10 秒后开始自动播放。但在 IE11 中,几秒钟后同一视频开始并行播放,因此您会听到两次声音。

当您检查 DOM 并删除 <video> 时标签(只有 1 个),一个视频停止播放。较晚开始的那个继续播放。 即使我访问另一个网站,视频也会继续播放。

只有关闭浏览器才能停止播放视频。

当我允许直接执行脚本时,不会出现这种情况。

使用 video.js 和 jQuery。

有什么想法吗?

最佳答案

HTML 元素不需要 JavaScript 和/或 ActiveX 来提供其内容。它们是自动化的。

页面加载并呈现为纯 HTML 后,允许 JavaScript,将触发 DOM 构建并重新呈现内容。但是,DOM 可能会复制媒体对象的实例并开始运行并行流,即,对已由 HTML 自动化启动的流进行复制。 !DOM 不可见。

因此,没有新标签页被打开或无法关闭,它只是一个处理初始流的 HTML 自动化实例。

只有在本地运行 HTML 页面时才会发生这种情况。

最后: 避免这种预期但不需要的行为的最佳方法是: 将视频元素的“自动播放”属性设置为“假”。

附注: 关于您所说的以下问题:“一旦启用 JS,您将被重定向到网站的在线版本。”

这是任何浏览器都无法或不会自行为您完成的事情。因此,您必须自行删除触发浏览器导航至在线内容的代码。 祝你好运。

关于javascript - 极其奇怪的行为 : IE11 seems to create an invisible tab when scripts are blocked and then allowed - how to fix it?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35010946/

有关javascript - 极其奇怪的行为 : IE11 seems to create an invisible tab when scripts are blocked and then allowed - how to fix it?的更多相关文章

随机推荐