我正在创建一个MVC 5应用程序,并且在视图中我使用了videojs。它适用于Firefox和Chrome,但在IE 11中,我在控制台中收到以下错误:
"对象不支持属性或方法" querySelector'"
上面的错误发生在第175行第62行的video.js中。视频因此而无法正常工作。我在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="@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>
以下是视图中标记的原始代码:
(this.Template.LoadContent() as FrameworkElement).FindName("myCanvas") as Canvas
有没有人对它为什么不起作用有任何想法?
答案 0 :(得分:3)
此问题的解决方案是添加
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
标记为Head中的第一项。
从我发送的链接进行编辑:
显然设置
<!DOCTYPE html>
页面内部不足以安抚Internet Explorer。在http://machine:80
引用我的网站时,浏览器仍然将IE7作为其默认文档模式这是因为Internet Explorer中的默认兼容性设置用于查看内部网站,导致IE的静默行为与外部网站的行为不同。
设置X-UA兼容的元标记明确声明内部浏览器应该在边缘模式下接收站点而不需要管理兼容性设置,但必须指定为头部中的第一个标记才能产生此效果