javascript - 嵌入雅虎!使用 IE11 的视频失败

标签 javascript jquery html iframe video

我正在尝试通过 iframe 将视频嵌入到 html 中

<iframe width="100%" height="351" scrolling="no" frameborder="0"   src="http://finance.yahoo.com/video/playlist/cnbc-big-data/best-worst-housing-markets-132811012.html?format=embed&player_autoplay=false"></iframe>

该视频在 Firefox 中运行良好。但是,当我尝试在 IE11 中查看 iframe 嵌入式视频时,它不起作用,而是给我消息“您需要 Adob​​e Flash 才能播放此视频”——如果从原始链接查看,这在 IE11 中确实有效。

我似乎无法理解为什么这不起作用,我希望有人可以帮助我解决问题!

谢谢

最佳答案

当您将视频嵌入 iframe 时,来源 (Yahoo) 似乎错误地确定了 IE11 中嵌入框架的浏览器类型。通过查看 Yahoo 源代码,他们进行了一些浏览器检查,甚至尝试将视频标签添加到标记中。如果这些都失败了,代码会说使用默认值,即设置为闪存。

http://yep.video.yahoo.com/js/3/videoplayer-min.js?lang=en-US  


getRendererType: function (al) {
        var am = "html";
        if (f.Lang.isString(al.mobile) || f.Lang.isNumber(al.ios) || al.android > 0) {
            return am;
        }
        if ((navigator && navigator.userAgent) && ((navigator.userAgent.indexOf("MSAppHost") >= 0) || (/.+MSIE 10.+Windows NT.+WebView/i.test(navigator.userAgent)))) {
            return am;
        }
        if (this._fallBackTOHTML5(al)) {
            return am;
        }

        function Y() {
            return !!document.createElement("video").canPlayType;
        }
        if (this._preferHTML5 && Y()) {
            return am;
        }
        return this._defaultRenderer;

但是将浏览器代理改回 IE10,渲染类型成功并显示视频。

IE10 Render

虽然这只是一个猜测,但我敢打赌 IE11 使用的新用户代理字符串会以某种方式告诉此视频组件控件不正确地呈现。不幸的是,视频播放器中的代码太多了,真的很难解开。

更新: 我尝试修改 navigator.userAgent 字符串以显示为 IE10,但没有任何运气 Sample

更新 2: 我不认为这是一个用户代理字符串。一定是在 IE11 的 Iframe 中添加了视频标签。修改用户代理确实修复了它。也许两者兼而有之。

遗憾的是,我认为您只能等待他们修复视频控件。

关于javascript - 嵌入雅虎!使用 IE11 的视频失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20268173/

相关文章:

javascript - 如何打开/关闭 $(document).click() 事件或其他解决方案

jquery循环遍历图像并替换src

html - @media print 中无法打印背景颜色

Javascript: fork 函数声明的效率有多高?

javascript - 如何使用 TypeScript 和 AngularJs 组织辅助函数

javascript - 了解道场 Hook

javascript - 缩小 PhoneGap App 的代码?

javascript - jquery 加载后删除重复元素

javascript - 带有 JSON 的 Angular.js 不起作用?

html - 为什么我的 HTML 代码显示在我的表单文本区域中?