Ein typisches Codefragment aus der YouTube-Einbettungsfunktion sieht folgendermaßen aus:
%Vor% Nun hat das Element <embed>
ein type-Attribut, um dem Browser mitzuteilen, dass es eine Flash-Datei einbettet. Für Browser, die das <object>
-Tag verwenden, scheint jedoch keine Information für den Browser verfügbar zu sein!
Warum wird hier kein Attribut classid oder codebase benötigt? Die einzigen Möglichkeiten, die ich mir vorstellen kann, sind:
<embed>
-Tag Ich kann keine Dokumentation finden, um beide Optionen zu überprüfen. Und ich bin neugierig!
EDIT: fand einen tollen Vergleich von Flash Einbettungstechniken hier . Ich will immer noch wissen wie es funktioniert ...
Ich habe ein wenig experimentiert und festgestellt, dass das Einfügen des Videos <embed>
dazu führt, dass IE das Video nicht einbetten kann. Ich war überrascht, dass IE das Embed-Tag verwendete, also vertiefte ich mich tiefer. Wenn Sie nur die Antwort wissen möchten, scrollen Sie am Ende die Zusammenfassung herunter!
Die einfachste Sache, die in IE8 funktioniert ist:
%Vor%Es gibt kein Typattribut, daher muss der Browser den MIME-Typ des src-Attributs prüfen, um herauszufinden, was zu tun ist. Ich habe dies verifiziert, indem ich eine Flash-Datei mit einem anderen MIME-Typ bereitgestellt habe - sie würde nur abgespielt werden, wenn ich ein Typattribut von application / x-shockwave-flash angegeben hätte (dieses Verhalten ist für IE hier )
Wenn ein <object>
-Tag die classid enthält, wird natürlich <embed>
ignoriert, was Sie erwarten würden. Ich habe dies verifiziert, indem ich das Embed-Tag auf ein anderes Video verweisen lasse
Wenn das Objekt-Tag verwendet wird, kümmert sich das Flash-Plugin nicht um den MIME-Typ des Films. Auch dies wurde überprüft, indem eine gültige SWF-Datei mit einem anderen MIME-Typ bereitgestellt wurde.
Entfernen Sie die Classid aus dem letzten Test, und Sie erhalten das alternative Video im <embed>
-Tag. Das bringt mich dazu, mich zu wundern, warum es überhaupt <param>
-Tags gibt, wenn sie nur in einer YouTube-Stil-Einbettung ignoriert werden.
Wenn es kein classid
-Attribut in <object>
gibt (oder eine andere Art, das erforderliche Plugin zu bestimmen, wie ein Datenattribut), gibt der IE alles wieder, was er im Objekt-Tag finden kann. co_de% tag (IE nennt dies Objekt-Fallback ). Wenn dieses Tag kein <embed>
-Attribut enthält, wird der MIME-Typ von type
verwendet, um das richtige zu verwendende Plugin zu bestimmen.
Es ist der MIME-Typ. Dies wird vom Server gesendet, um dem Browser zu helfen, den Inhaltstyp zu identifizieren. MIME-Typen sind Helper-Plugins zugeordnet.