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/