javascript - 为什么 Windows 更新 KB4343909 后我的视频无法在 IE 和 Edge 上加载?
问题描述
安装Windows 10 更新 KB4343909后,我网站上加载的视频已停止加载。它们是通过 video.js 加载的,它只是保持在 readyState=0 和 networkState=0,而不会出现错误。
在 Chrome、Firefox、Safari 等上一切正常,只是在 IE 和 Edge 上不行。
js 代码如下所示:
var video_module = videojs("my-video");
video_module.ready(function(){
var myPlayer = this;
$('.video-js').append(loading);
});
video_module.load();
var loadingCheck = setInterval(function(){
if(video_module.networkState() >= 1){
$('.vjs-big-play-button').css('opacity', 1);
$('.loading-spinner').remove();
clearInterval(loadingCheck);
}
if(loadingCount === 15){
if(video_module.src() == '' || video_module.readyState() < 1){
video_module.dispose();
//Show timeout message...
clearInterval(loadingCheck);
}
}
loadingCount++;
}, 1000);
html是这样的:
<video id="my-video" class="video-js vjs-default-skin" preload="none"
data-setup="{}">
<source src="my/video/url" type="video/mp4">
<p class="vjs-no-js">No HTML5 video message...</p>
</video>
解决方案
这里的问题似乎是preload="none"
. 更改它以preload="auto"
修复 Edge 中的问题。
根据更新,它:
确保 Internet Explorer 和 Microsoft Edge 支持 preload="none" 标记。
我猜测为什么会这样,这是阻止用户加载视频(通过单击它),并选中networkState
,但是 networkState 在开始加载视频后才变为 1,所以没有预加载,它本质上是死锁。无论如何,这就是理论。
推荐阅读
- ios - 由于配置文件问题,无法构建/运行 Xcode 项目
- database - ArangoDB 图形查看器选项:使用多个属性的标签
- environment-variables - JNLP 应用程序为所有 System.getenv() 返回 NULL
- bash - 如何在多行中编写单行字符串?
- cpu-architecture - 为什么 LRU 实现在全关联 TLB 中很昂贵?
- java - Tomcat Https jks 文件错误:java.io.IOException: DerInputStream.getLength(): lengthTag=109, too big
- javascript - 将值从 JS 传递到 PHP
- python - Python正则表达式删除数字和周围的空间?
- firefox - Google Cloud Shell 和 VM SSH 命令行空白
- c++ - 如何使用任意类型的元函数转换 hana::tuple_t?