Verwenden Sie SWFObject, um das Browserkompatibilitätsproblem beim Einfügen von Flash in HTML perfekt zu lösen

Verwenden Sie SWFObject, um das Browserkompatibilitätsproblem beim Einfügen von Flash in HTML perfekt zu lösen

Lasst uns gemeinsam lernen

1. Traditionelle Methoden


Code kopieren
Der Code lautet wie folgt:

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"codebase="<a href="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0">http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0</a>" width="550" height="400" id="Ohne Titel-1" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="Film" value="meinFilm.swf" />
<param name="Qualität" value="hoch" />
<param name="bgcolor" value="#ffffff" />
<embed src="meinFilm.swf" Qualität="hoch" bgcolor="#ffffff" Breite="550" Höhe="400"name="meinFilm" Ausrichtung="Mitte" allowScriptAccess="sameDomain" Typ="Anwendung/x-shockwave-flash" Pluginspage="<a href="http://www.macromedia.com/go/getflashplayer">http://www.macromedia.com/go/getflashplayer</a>" />
</Objekt>

Diese Methode verwendet zum Einbetten die Objekt- und Einbettungs-Tags. Wenn Sie genau hinschauen, werden Sie feststellen, dass viele Parameter des Objekts und viele Attribute im Embed wiederholt werden. Warum wird das gemacht? Aus Gründen der Browserkompatibilität unterstützen manche Browser Objekte und manche eingebettete Objekte. Deshalb müssen Sie beim Ändern der Flash-Parameter beide Stellen ändern.

Bei dieser Methode handelt es sich um die offizielle Methode von Macromedia, die die Funktionalität von Flash weitestgehend gewährleistet und keine Kompatibilitätsprobleme aufweist. Allerdings funktioniert es jetzt nicht mehr so ​​gut: Die Validierung schlägt fehl, da das aus Kompatibilitätsgründen eingebettete Embed-Tag nicht der W3C-Spezifikation entspricht. Ob Ihnen Standards egal sind oder nicht, ist natürlich eine andere Sache.

Aus verschiedenen Gründen hat Microsoft nach SP2 den Nutzungsmodus von IE ActiveX eingeschränkt. Das heißt, im ActiveX auf der Seite befindet sich eine virtuelle Box, und der Benutzer muss einmal klicken, um normal zu interagieren. Flash ist als ActiveX in die Webseite eingebettet und daher ebenfalls betroffen. Dieses Problem kann nur durch die Einbettung von Flash über JS gelöst werden.

Es gibt keine Flash-Versionserkennung. Wenn die Flash-Plugin-Version des Browsers nicht ausreicht, wird Ihre SWF-Datei möglicherweise nicht normal angezeigt oder es erscheint ein ActiveX-Bestätigungsfenster für die Installation – dieses Fenster ist für viele Benutzer sehr beängstigend.

2. Methode der Einbettung mit JS

Beim Einbetten mit JS gibt es unterschiedliche Einbettungsmethoden, manche sind gut und manche nicht. Manche Leute verwenden document.write, um direkt zu schreiben. Ehrlich gesagt ist diese Methode nicht sehr gut. Es fühlt sich an, als hätte sie zu viele Hack-Elemente und ist ein bisschen wie eine Überprüfung nur um der Überprüfung willen. Es spiegelt auch nicht die Vorteile von JS wider. Ich denke, ein gutes JS-Einbettungsskript sollte zwar die Funktionen von Flash sicherstellen, aber gleichzeitig die Vorteile von JS voll ausschöpfen. Es sollte eine Versionserkennung haben, Barrierefreiheitsprobleme gut lösen können (also wissen, was zu tun ist, wenn Benutzer Flash-Inhalte nicht durchsuchen oder JS deaktivieren können) und einfach wiederverwendbar sein.

Wir werden hier über die SWFObject-Lösung sprechen:

„SWFObject“ verwendet Javascript zum Einfügen von Flash, was viele Vorteile bietet. Der Code ist prägnant, unter IE6 wird keine Eingabeaufforderung „Klicken Sie hier, um das Steuerelement zu aktivieren“ angezeigt und es besteht die W3C-Verifizierung. Unterscheidet sich von der herkömmlichen Methode zum Einfügen von „Objekten“ in Flash.

In der neuen 2.x-Version von SWFObject erfordert der einfachste Aufruf nur einen Satz und es besteht keine Notwendigkeit, auf das Laden der Seite zu warten. Dies bedeutet, dass Sie diesen Satz überall auf der Seite schreiben können. Es ist viel einfacher als die vorherige Version. Hier sind einige einfache und häufig verwendete Anrufmethoden:

1. Der einfachste und grundlegendste klassische Satz, der immer dann verwendet werden kann, wenn Sie Flash einfügen möchten.


Code kopieren
Der Code lautet wie folgt:

<div id="swfid"></div>
<script type="text/javascript" src="swfobject.js"></script>
<Skripttyp="text/javascript">
swfobject.embedSWF("test.swf", "swfid", "300", "120", "9.0.0", "expressInstall.swf");
</Skript>

Hinweis: Rufen Sie die Methode embedSWF auf, um die SWF-Datei einzufügen. Die Parameter sind: @die Adresse der SWF-Datei; @die ID des Containers (z. B. div), der zum Laden der SWF-Datei verwendet wird; @die Breite des Flashs; @die Höhe des Flashs (natürlich können Breite und Höhe hier als Prozentwerte wie 100 % ausgedrückt werden); @die Mindestversion, die zum normalen Abspielen des Flashs erforderlich ist; @wenn die Version niedriger als die Anforderung ist, führen Sie die SWF-Datei aus. Verwenden Sie hier diesen Flash, um zum offiziellen Download der neuesten Version des Flash-Plug-Ins zu springen. (Dieser Parameter kann weggelassen werden) Wenn Sie mehrere Flashes an verschiedenen Stellen auf derselben Seite einfügen, wiederholen Sie einfach die obige Anweisung und verwenden Sie unterschiedliche Container-IDs.

2. Aufrufen von Methoden zum Übergeben von Parametern, Variablen und Eigenschaften an SWF-Dateien


Code kopieren
Der Code lautet wie folgt:

<script type="text/javascript" src="swfobject.js"></script>
<Skripttyp="text/javascript">
//1. Verwenden Sie Json, um Variablen, Parameter und Eigenschaften zu initialisieren
var flashvars = {
name1: "hallo",
name2: "Welt",
Name3: "foobar"
};
var Parameter = {
Menü: "false"
};
var Attribute = {
ID: "dynamicContent2",
Name: "dynamicContent2"
};
swfobject.embedSWF("test6_flashvars.swf", "content2", "300", "120", "6.0.0","expressInstall.swf", flashvars, params, attribute); </p> <p>//2. Traditionelle Initialisierungseinstellungen, der Effekt ist der gleiche
var flashvars = {};
flashvars.name1 = "hallo";
flashvars.name2 = "Welt";
flashvars.name3 = "foobar";
var Parameter = {};
params.menu = "falsch";
var Attribute = {};
Attribute.id = "dynamicContent3";
Attribute.Name = "dynamicContent3";
swfobject.embedSWF("test6_flashvars.swf", "content3", "300", "120", "6.0.0","expressInstall.swf", Flashvars, Parameter, Attribute);
//3. Schreiben Sie es direkt am Ende, nur ein Satz, prägnant und kraftvoll, ohne Aufschub
swfobject.embedSWF("test6_flashvars.swf", "content5", "300", "120", "6.0.0","expressInstall.swf", {name1:"Hallo",name2:"Welt",name3:"foobar"}, {menu:"false"}, {id:"dynamicContent5",name:"dynamicContent5"});
</Skript>

Offizielle Dokumentation zu SWFObject 2.0 (Chinesisch) https://www.jb51.net/books/175630.html

github: https://github.com/swfobject/swfobject .

<<:  Detaillierte Erklärung der Unterschiede zwischen den vier Positionierungsarten in CSS

>>:  Bringen Sie Ihnen bei, wie Sie den Beobachtermodus in Javascript implementieren

Artikel empfehlen

Prinzip des MySQL-Indexfehlers

Inhaltsverzeichnis 1. Gründe für Indexfehler 2. S...

Methode und Optimierungsprinzip für langsame MySQL-Abfragen

1. Zum Vergleich der Datumsgröße muss das an XML ...

Tutorial zur MySQL-Datensicherungsmethode mit Multi-Master und One-Slave

Überblick Vorgänge, die auf einer Datenbank ausge...

Zusammenfassung zum Sharding von MySQL-Datenbanken und -Tabellen

Während der Projektentwicklung werden unsere Date...

Einführung in JavaScript-Zahlen- und Mathematikobjekte

Inhaltsverzeichnis 1. Zahlen in JavaScript 2. Mat...

JS implementiert die Append-Funktion von jQuery

Inhaltsverzeichnis Zeig mir den Code Testen Sie d...

Vue CodeMirror realisiert den Effekt des Online-Code-Compilers

Vorwort Wenn wir den Effekt der Online-Codekompil...

Möglichkeiten zur Verbesserung der MongoDB-Leistung

MongoDB ist eine Hochleistungsdatenbank, bei der ...

15 JavaScript-Funktionen, die es wert sind, gesammelt zu werden

Inhaltsverzeichnis 1. Zahlen umkehren 2. Holen Si...