2013-11-28 57 views
1

我试图通过iframe来嵌入视频转换成HTML在Firefox嵌入Yahoo!视频使用IE11失败

<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> 

此视频工作正常。但是,当我试图在IE11中查看iframe嵌入式视频时,它不起作用,而是给我提示“您需要Adobe Flash播放此视频” - 如果从原始链接进行查看,则这在IE11中起作用。

我似乎无法理解为什么这不起作用,我希望有人能帮我解决方案!

由于

+0

你确定你安装了Adobe Flash for IE吗?并有插件运行? – Charlie74

+1

另外,我相信IE10和IE11在通过“metro”界面使用时不支持闪光灯......您需要使用桌面版本的浏览器才能查看闪光灯。 – Charlie74

+0

好吧,正如我在我原来的帖子中说的那样,视频在原始源代码上的工作方式就像一个flash插件 - 它只是在试图通过iframe添加这个嵌入式视频时,它不起作用......我使用的是Windows 7不是8. –

回答

2

它看起来当你将视频嵌入的iframe源(雅虎)等不正确地确定在IE11嵌入式帧的浏览器类型。通过雅虎资源查看,他们做了一些浏览器检查,甚至试图将视频标签添加到标记中。如果这些全部失败,则代码表示使用默认设置,该默认设置为闪存。

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

UPDATE2: 我不认为这是一个用户代理字符串。它必须是在IE11中的iframe中添加视频标签。修改用户代理确实解决了这个问题。也许这是两个。

可悲的是,我认为你将不得不等待他们来修复视频控制。

+0

然后我可以做些什么来实现这个目标? –

+0

非常感谢您的帮助! –

+0

没有太大的帮助......也许有人会看到我的进步,并可以想出其他的东西来尝试。 – cgatian