浏览器

时间:2017-03-05 18:39:47

标签: asp.net-mvc internet-explorer

逗人,

我制作了播放视频和音频的HTML帮助

当我从(默认值为7)更改为(9,10或边缘)时,它可以正常工作 我怎么能把它修好到最新。 我需要做什么?

这是我的助手代码

public static IHtmlString Media(this HtmlHelper helper, string width, string height, string src, bool isYoutubeOrVimeo = false, string type = "video")
        {
            if (type == "audio")
            {
                return new MvcHtmlString(string.Format(@"<audio controls>
  <source src='{0}' type='audio/ogg'>
  <source src='{0}' type='audio/mpeg'>
<source src='{0}' type='audio/wav'>
Your browser does not support the audio element.
</audio>", src));

            }
            else
            {
                if (isYoutubeOrVimeo == false)
                {
                    return new MvcHtmlString(string.Format(@"<video width='{0}' height='{1}' controls>
  <source src='{2}' type='video/mp4'>
  <source src='{2}' type='video/ogg'>
  <source src='{2}' type='video/webm'>
Your browser does not support the video tag.
</video>", width, height, src));
                }
                else
                {
                    Regex VimeoVideoRegex = new Regex(@"vimeo\.com/(?:.*#|.*/videos/)?([0-9]+)", RegexOptions.IgnoreCase | RegexOptions.Multiline);
                    Regex YoutubeVideoRegex = new Regex(@"^(?:https?\:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v\=))([\w-]{10,12})(?:$|\&|\?\#).*");
                    Match youtubeMatch = YoutubeVideoRegex.Match(src);
                    Match vimeoMatch = VimeoVideoRegex.Match(src);
                    string id = string.Empty;
                    if (youtubeMatch.Success)
                    {
                        id = youtubeMatch.Groups[1].Value;
                        return new MvcHtmlString(string.Format(@"<iframe width='{0}' height='{1}' src='{2}' frameborder='0' allowfullscreen></iframe>", width, height, "https://www.youtube.com/embed/" + id));
                    }
                    if (vimeoMatch.Success)
                        id = vimeoMatch.Groups[1].Value;
                    return new MvcHtmlString(string.Format(@"<iframe width='{0}' height='{1}' src='{2}' frameborder='0'></iframe>", width, height, "https://player.vimeo.com/video/" + id));
                }
            }
        }

enter image description here

1 个答案:

答案 0 :(得分:0)

首先,使用文件&gt;属性菜单确定您的测试网站映射到的 IE安全区域。默认情况下,localhost子域将映射到Internet区域。如果你的localhost映射到INTRANET区域,那么它将采用IE7的默认模拟模式(参见工具&gt;兼容性视图设置&gt;&#34;在兼容性视图中显示内部网站点&#34; )并且不会支持/渲染html5媒体元素,也只会运行32位BHO,工具栏或ActiveX控件(32位cpu的粗略运行64位代码)。

从IE浏览器工具&gt;互联网选项&gt;安全选项卡,点击&#34;将所有区域重置为默认值&#34;按钮,将您的开发机器的浏览器安全设置重置为其工厂或公司GPO默认设置。

然后选择......

Intranet区域&gt;高级按钮,从列表中删除localhost或127.0.0.1。保存更改。

返回IE并刷新测试网站页面。使用IE中的文件&gt;属性菜单再次确认它现在映射到INTERNET安全区域。使用IE开发工具的Emulation选项卡确认它现在采用Edge仿真模式(IE11),因此能够支持HTML5媒体元素。

但是,您的屏幕截图表明您的BHO甚至没有加载到IE 32位标签进程中......您需要部署32位和64位版本的BHO,它们可以在32位处理器和64位进程/标签上运行。 ...默认情况下,64位处理器上的IE只会在加载映射到Internet(或受限制)区域的网站的选项卡上加载64位BHO。

您的BHO(在没有用户操作的情况下自动在网页中注入内容)在野外部署时可能会被标记为恶意软件...请参阅以下链接以了解最佳做法&#39;用于IE Addon开发。

http://www.enhanceie.com/ie/dev.asp

https://msdn.microsoft.com/en-us/library/gg130949(v=vs.85).aspx