Spójrz na następujący adres URL w IE7: http://rickkuipers.nl/display-table/index .html

Jak widać, display-table.htc w ogóle nie jest ładowany z powodu filmu na YouTube (tag <object>).

Po kliknięciu linku „Przełącz na wersję bez tagu <object> YouTube” zobaczysz, że dokładnie ta sama strona BEZ tagu YouTube <object> działa dobrze.

Skontaktowałem się już z autorem display-table.htc, ale pomyślałem, że równie dobrze mogę zapytać o to tutaj.

Czy ktoś zna obejście problemu?

Zauważ, że tylko usunięcie type="application/x-shockwave-flash" z tagu <object> również sprawi, że będzie działać ponownie. Ale wtedy wideo z YT oczywiście już nie będzie działać...

1
Rick Kuipers 22 luty 2012, 03:10

2 odpowiedzi

Najlepsza odpowiedź

Używanie SWFObject do dynamicznego (a także bardziej poprawnego) ładowania YTPlayera zadziałało dla mnie:

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

W ten sposób zachowanie .htc nie zostanie zerwane.

EDYTUJ Jeśli powyższe nie jest odpowiednią opcją dla Ciebie, możesz to zmienić w display-table.htc

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

Do

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

EDYTUJ Zaakceptowałem własną odpowiedź, ale proszę również zwrócić uwagę na komentarz twórcy poniżej.

2
Rick Kuipers 24 luty 2012, 13:05

Najwyraźniej wersja JS API kodu do osadzenia YouTube w jakiś sposób blokuje uruchomienie komponentu htc. Prawdopodobnie jest to błąd samego API YouTube JS.

Problemu nie można odtworzyć przy użyciu zwykłego kodu do osadzania, takiego jak ten (dostępny po kliknięciu prawym przyciskiem myszy na YouTube Flash Player -> Kopiuj kod HTML):

<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>
2
Marat Tanalin 22 luty 2012, 05:17