javascript - 视频JS : Object doesn't support property or method 'querySelector'

标签 javascript asp.net-mvc-5 internet-explorer-11 windows-7-x64 video.js

我正在创建一个 MVC 5 应用程序,在 View 中我正在使用 videojs。它适用于 Firefox 和 Chrome,但在 IE 11 中我在控制台中收到以下错误:

“对象不支持属性或方法‘querySelector’”

上述错误发生在 video.js 的第 175 行第 62 列中。因此,视频无法播放。我使用的是 Windows 7 Enterprise 64 位。使用 Internet Explorer 版本 11.0.9600.18015。我意识到浏览器说这是 video.js 文件的问题,但为了彻底起见,这里是 IE 11 从 MVC 应用程序呈现的标签:

        <div id="VideoDiv" style="margin-top:10px;">
              <video id="example_video_1" 
                     class="video-js vjs-default-skin" 
                     width="750" 
                     height="400" 
                     preload="none"
                     data-setup='{ "techOrder": ["html5"],  "controls":true,  "autoplay" : false}'>
                        <source src="http://vjs.zencdn.net/v/oceans.mp4" type="video/mp4"/>
            </video>

       </div>

以下是 View 中标记的原始代码:

    <div id="VideoDiv" style="margin-top:10px;">
         <video id="example_video_1" 
                class="video-js vjs-default-skin"          
                width="@Model.VideoOptions.Width.ToString()"
                height="@Model.VideoOptions.Height.ToString()"
                preload="none"
                @(Model.VideoOptions.IsYouTube ? Html.Raw(string.Format("src='{0}'", Model.VideoOptions.VideoSource) ) : null)
               data-setup='{ "techOrder": [@Html.Raw(Model.VideoOptions.TechOrder)], @Html.Raw(string.Format(" \"controls\":{0}", Model.VideoOptions.IncludeControls.ToString().ToLower())),  "autoplay" : @Model.VideoOptions.Autoplay.ToString().ToLower()}'>
                    @if (!Model.VideoOptions.IsYouTube)
                    {
                         <source src="@Model.VideoOptions.VideoSource" type="@Model.VideoOptions.VideoSourceType"/>
                    }
       </video>

   </div>

有人知道它为什么不起作用吗?

最佳答案

这个问题的解决方案是添加

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />

标记为 Head 中的第一项。

Object doesn't support property or method 'querySelector' shows when accessing site by machine name in IE11

从我发送的链接进行编辑:

显然是设置

<!DOCTYPE html>

页面内的内容不足以安抚 Internet Explorer。当 http://machine:80 引用我的网站时,浏览器仍然选择 IE7 作为其默认文档模式。

这是由于 Internet Explorer 中用于查看内部网站的默认兼容性设置导致 IE 的行为与外部网站不同。

设置 X-UA-Compatible 元标记显式声明内部浏览器应以 Edge 模式接收站点,而无需管理兼容性设置,但必须指定为 head 中的第一个标记才能实现此效果.

关于javascript - 视频JS : Object doesn't support property or method 'querySelector' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33131197/

相关文章:

javascript - 避免用户在本地工作时被注销

Angular ngModelChange Internet Explorer 11

jenkins - 在 Windows Jenkins 从节点上运行 Protractor 时出现问题

c# - 带条件的 asp.net mvc 5 SelectListItem

c# - 如何实现包含新 IdentityUser 的工作单元

javascript - 如何在node.js中访问整个应用程序中的数据库连接?

javascript - Angular 手动引导

html - IE11 : Position absoluted DIV inside Flex container keeps out of the flow

javascript - 无法永久存储拖动项目的ID

javascript - 如何创建登录和注册页面而无需连接到后端(ReactJS + Redux)?