EpicWEB.pl

webdesign, programowanie, phat lewt!

Ostatni projekt

ddrpl.com

Ostatnie wiadomości

Internet Explorer i <OBJECT>

<OBJECT> to tag pozwalający na osadzanie np. obiektów multimedialnych na stronach WWW - najczęściej spotykamy się z nim np. na YouTube, gdzie w ten sposób osadzany jest odtwarzacz Flash.

Internet Explorer w wersji 6 radośnie ignoruje sobie ten tag i wymaga zastosowania tagu <EMBED> dlatego często obiekty osadzane są tak jak poniżej:

<object width="480" height="295">
        <param name="movie" value="http://www.youtube.com/v/sDsAPMhuABU&hl=pl_PL&fs=1"></param>
        <param name="allowFullScreen" value="true"></param>
        <param name="allowscriptaccess" value="always"></param>
        <embed src="http://www.youtube.com/v/sDsAPMhuABU&hl=pl_PL&fs=1" type="application/x-shockwave-flash" width="480" height="295" allowscriptaccess="always" allowfullscreen="true"></embed>
</object>

Dzięki zastosowaniu takiej notacji, zarówno IE6 jak i nowsze przeglądarki poprawnie wyświetlają daną treść. Oczywiście, żeby nie było różowo, są i tutaj haczyki - jeden właśnie spowodował zmarnowanie 30 minut mojego życia.

O ile jak już wcześniej wspomniałem IE6 przy napotkaniu tagu <OBJECT> w HTML zignoruje go, o tyle przetworzy jego zawartość i wyświetli dane z <EMBED> o tyle zupełnie inaczej ma się to z obiektami dynamicznie wstawianymi do DOMu poprzez Java Script - w takim wypadku IE6 ignoruje zarówno <OBJECT> jak i całą jego zawartość. Rozwiązaniem w takim wypadku jest "wyłuskanie" <EMBED> ze wstawianego kodu HTML i wyświetlenie tylko tego jednego znacznika dla IE6.

Komentarze

Avatar użytkownika 1

Komentarz użytkownika Wasacz

08 01 2010

Hm… Ciężko mi się myśli w piątek wieczorem, ale coś dziwny masz ten OBJECT. Mnie się wydawało, że normalne agenty sobie ciągną obiekt z atrybutu DATA, a IE powinien złapać param[name=movie]; wydawało mi się, że tak działała metoda Flash Satay, nie? EMBED to brzydkie jest przecież.

Avatar użytkownika 2

Komentarz użytkownika BTM

08 01 2010

Brzydki, nie brzydki - skopiowany z YouTube.

Avatar użytkownika 3

Komentarz użytkownika Radek

10 01 2010

To jeden z powodów dla których uważam, że PHP, HTML i JS to "inna informatyka". Może niesłusznie, ale mam wrażenie, że webdeveloperzy to mają strasznie smutną pracę...

Avatar użytkownika 4

Komentarz użytkownika BTM

10 01 2010

Możesz rozwinąć myśl? Bo nie łapę o co Ci chodzi ...

Avatar użytkownika 5

Komentarz użytkownika trójkąt

10 01 2010

A co z swfobject? http://code.google.com/p/swfobject/

Avatar użytkownika 6

Komentarz użytkownika Radek

10 01 2010

Mam na myśli to pierniczenie się z przeglądarkami. Programowanie jakie lubie to algorytmy i matematyka, a prezentacja wyników to parę linijek, które się piszesz na samym końcu. Tymczasem w przypadku serwisów internetowych wszystko jest na odwrót. Parę prostych algorytmów, parę zapytań do baz danych i mnóstwo pieprzenia się z kodem by każda najdurniejsza przeglądarka sobie radziła z pokazaniem wyniku działania kodu.

Avatar użytkownika 7

Komentarz użytkownika BTM

11 01 2010

@trójkąt: SWFObject znam, ale w tym wypadku musiałem zmodyfikować MilkBox, który ma już wbudowaną obsługę flasha przez obiekt biblioteki MooTools, ale nie obsługiwał wstawiania flashy jako obiekty.

@Radek: ano niestety, muszę się z Tobą (w większości - nie zawsze to tylko proste zapytania i algorytmy, w większości, ale nie zawsze ;p) zgodzić. Różnorodność silników renderujących to po prostu koszmar.

Zostaw komentarz