2012-02-21 12 views
1

看一看在IE7以下網址上的YouTube視頻:http://rickkuipers.nl/display-table/index.htmldisplay-table.htc不能正常運行時,有頁面

正如你所看到的,display-table.htc似乎沒有得到因爲YouTube視頻(<object>標籤)而被加載。

當您點擊鏈接「切換到版本沒有<object>標籤的YouTube」你可以看到,沒有<object> YouTube標籤完全相同的頁面正常工作。

我已經聯繫了display-table.htc的作者,但我想我不妨在這裏問一下。

有沒有人知道這個問題的解決方法?

請注意,只有從<object>標籤中刪除type="application/x-shockwave-flash"也會使其再次起作用。但後來的YT視頻顯然不會工作了...

回答

2

使用SWFObject動態(也更正確)負載: -

問題使用這樣平常的嵌入代碼(>將HTML代碼複製通過在YouTube上的Flash Player中右鍵單擊可用)時,不可複製YTPlayer爲我工作:

<script type="text/javascript" src="swfobject.js"></script>  
<script type="text/javascript"> 
var params = { allowScriptAccess: "always" }; 
var atts = { id: "myytplayer" }; 
swfobject.embedSWF("http://www.youtube.com/apiplayer?enablejsapi=1&playerapiid=ytplayer&version=3&video_id=mUCRZzhbHH0", 
        "ytapiplayer", "425", "356", "8", null, null, params, atts); 
</script> 

這樣的.htc行爲不會被打破。

編輯 如果上述不適合你的有效選項,你可以在display-table.htc

<public:attach event="ondocumentready" onevent="_(element)" /> 

<public:attach event="oncontentready" onevent="_(element)" /> 

編輯我改變了已經接受了我自己的答案,但也請注意下面創建者的評論。

+0

不幸的是'oncontentready'本身就是越野車(據我所知,當_nested_' display:table'元素出現時會引發問題)。所以'ondocumentready'已被有意_用作更可靠的方法。 – 2012-02-22 21:35:33

+0

@MaratTanalin但是在這種情況下,ondocumentready似乎更加buggier,所以我會盡快與oncontent一起去。我似乎已經完成了所有工作,並在IE7中進行了測試。如果你有更好的想法,那麼我會很樂意聽到:) – 2012-02-22 22:11:22

2

顯然,YouTube嵌入代碼的JS API版本以某種方式阻止htc組件運行。可能是YouTube JS API本身的錯誤。

<object style="height: 390px; width: 640px"><param name="movie" value="http://www.youtube.com/v/mUCRZzhbHH0?version=3&feature=player_detailpage"><param name="allowFullScreen" value="true"><param name="allowScriptAccess" value="always"><embed src="http://www.youtube.com/v/mUCRZzhbHH0?version=3&feature=player_detailpage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360"></object> 
+0

我期待這個答案,我現在設法通過使用SWFObject來嵌入它。因爲你的回答讓我意識到了一些事情,並讓我思考如果我以後動態加載YTPlayer會發生什麼,我會給你答案+1。問題解決了。 – 2012-02-22 10:49:14