2013-11-28 56 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