2013-06-21 83 views
3

我創建了自定義外觀以播放YouTube視頻。它曾用於所有主流瀏覽器。它現在不再適用於桌面電腦的Safari。這裏是鏈接:YouTube API播放器不再適用於Safari

http://www.don-nan.net/gas_separator.php

控制檯記錄一個錯誤,指出:

該錯誤是由ytplayer.playVideo(引起「錯誤調用NPObject方法錯誤」)上的http://www.don-nan.net/chromeless.css線100。該腳本在Firefox和Chrome中運行良好。

+0

你能在這方面取得進展嗎?正如我在下面提到的,我提交了一個錯誤報告,但我沒有找到任何解決方法。 –

回答

2

傑米收到了這個答案。謝謝你,傑米:

https://code.google.com/p/gdata-issues/issues/detail?id=4887

我改變稱爲loadPlayer功能。此前,功能如下所示:

// The "main method" of this sample. Called when someone clicks "Run". 
function loadPlayer() { 

    // Lets Flash from another domain call JavaScript 
    var params = { allowScriptAccess: "always", wmode: "transparent" }; 

    // The element id of the Flash embed 
    var atts = { id: "ytPlayer" }; 

    // All of the magic handled by SWFObject (http://code.google.com/p/swfobject/) 
    swfobject.embedSWF("http://www.youtube.com/apiplayer?" + 
     "&enablejsapi=1&playerapiid=player1", 
} 

由於論壇底部的註釋聲明版本號必須作爲url中的參數傳遞。因此,改變這一行:

swfobject.embedSWF("http://www.youtube.com/apiplayer?" + 

到:

swfobject.embedSWF("http://www.youtube.com/apiplayer?version=3" + 

固定的問題。

0

我遇到了完全相同的問題,並且我已經進一步跟蹤了它。

在Safari中,我的嵌入式「//www.youtube.com/apiplayer...」最終在檢查器中顯示爲https請求,即使我的頁面通過http提供。即使我明確指出該方案應該是http(「http://www.youtube.com/apiplayer ...」),我也會看到https請求。我認爲這觸發了導致NPObject錯誤的混合模式安全問題。

您的網站上也發生過相同的事情。

這裏是最簡單的例子:

<html> 
<body> 
    <object type="application/x-shockwave-flash" 
      data="http://www.youtube.com/apiplayer"> 
    </object> 
</body> 
</html> 

這觸發關閉HTTP在Chrome請求www.youtube.com和s.ytimg.com,但我看到的是https請求,而不是在Safari。

然而,它並不與其他玩家發生,我試過:

http://vimeo.com/moogaloop.swf 
http://www.viddler.com/player/key 

也不如果我改變了用戶代理給Safari以外的東西它確實發生了!

+0

我報告過這個問題:[https://code.google.com/p/gdata-issues/issues/detail?id=4887](https://code.google.com/p/gdata-issues/問題/細節?ID = 4887) –

相關問題