In HTML eingebettetes Flash Lösung zum Einbetten von Flash-Dateien in den HTML-Webseitencode (Teil 2)

In HTML eingebettetes Flash Lösung zum Einbetten von Flash-Dateien in den HTML-Webseitencode (Teil 2)
Mit dem obigen Artikel habe ich meine Einführung in die Verwendung von SWFObject V1.5 vorläufig abgeschlossen. Jetzt werde ich Ihnen allen SWFObject V2.1 vorstellen. Wenn ich V2.1 früher gekannt hätte, wäre ich möglicherweise nicht mit dem Problem „Warten auf das Laden des HTML-DOM“ konfrontiert worden.

Lassen Sie mich zunächst kurz das Aufrufbeispiel der V2.1-Syntax vorstellen:

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, Parameter, Attribute);
// 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>

Persönlich bevorzuge ich die dritte Schreibweise oben. Wie weiter unten erwähnt wird, besteht meine endgültige Lösung zum Einbetten von Flash-Dateien in HTML-Code darin, den dritten Stil des Aufrufs von swfobject.embedSWF() zu verwenden. Der Stil von V2.1 entspricht weitgehend dem Stil modernen JS und der Code erscheint prägnanter.

Die im vorherigen Artikel gewählte Lösung scheint die meisten Anforderungen erfüllen zu können und die Kompatibilität scheint akzeptabel zu sein. Sie sollte die Anforderungen der meisten Freunde erfüllen können und ist auch eine akzeptable Lösung. Ich habe jedoch eine extremere Situation festgestellt:
Code kopieren
Der Code lautet wie folgt:

neues SWFObject("http://www.pec365.com/Flash/20071113.swf", "meinFilm", "304", "367", "7", "#FFFFFF");

Wenn die Adresse der übergebenen Flash-Datei falsch ist oder die Flash-Datei auf dem Server gelöscht wird, tritt eine unerwünschte Situation ein, wie unten dargestellt:

Code kopieren
Der Code lautet wie folgt:

<html>
<Titel>DEMO</Titel>
<Kopf>
<script type="text/javascript" src="swfobject_source.js"></script>
</Kopf>
<Text>
<Formular-ID="Formular1">
<div id="Flashinhalt">
<a href="http://www.adobe.com/go/getflashplayer">
<img src="upload/2022/web/get_flash_player.gif" alt="Adobe Flash Player herunterladen" border="0" />
</a>
</div>
</form>
<Skripttyp="text/javascript">
// Beachten Sie, dass ich vor dem Flash-Dateinamen ein f hinzugefügt habe.
var so = neues SWFObject("http://www.pec365.com/Flash/f20071113.swf", "meinFilm", "304", "367", "7", "#FFFFFF");
so.write("Flashinhalt");
</Skript>
</body>
</html>

Es wird empfohlen, diesen Code selbst auszuführen. Wenn Sie ein Neuling sind, können Sie die im vorherigen Artikel beschriebenen Schritte befolgen, um diesen Code auszuführen und das Eintreffen der „Katastrophe“ wirklich zu spüren.

Ja, Sie werden sehen, dass die Seite leer ist und das Bild, das ursprünglich verwendet wurde, um das Bild zu ersetzen, wenn Flash nicht angezeigt werden kann, ist ebenfalls verschwunden. Wo ist es hin? Nach dem Debuggen habe ich festgestellt, dass selbst wenn die Adresse der übergebenen Flash-Datei falsch ist, ein fehlerhaftes Tag <object [……]></object> erstellt wird, um den Inhalt in <div id="flashcontent">[……]</div> zu ersetzen, sodass Sie einen leeren Bereich mit einer Höhe von 304 Pixeln und einer Breite von 367 Pixeln sehen (wenn Sie den Flash Player installiert haben, klicken Sie mit der rechten Maustaste auf die obere linke Ecke des Bildschirms, und Sie werden ihn finden), und der Albtraum beginnt.

Um dieses Albtraumergebnis zu lösen, habe ich mir eine schlechte Idee ausgedacht. Zuerst wird anhand der Adresse der übergebenen Flash-Datei überprüft, ob die Datei wirklich auf dem Server vorhanden ist. Wenn das zurückgegebene Ergebnis ist, dass die Flash-Datei vorhanden ist, wird die Methode swfobject.embedSWF() ausgeführt. Die konkrete Idee besteht darin, das XMLHttpRequest-Objekt zu verwenden, um den Server über die GET/HEAD-Methode anzufordern, und dann xmlHttp.status == 200 || xmlHttp.status == 302 als Grundlage für die Existenz der Datei zu beurteilen. Diese Methode scheint jedoch bestimmte Mängel zu haben. Ich kann sie noch nicht verbessern. Hier ist ein Beispiel für meine endgültige Lösung:

Code kopieren
Der Code lautet wie folgt:

<html>
<Titel>DEMO</Titel>
<Kopf>
<script language="javascript" type="text/javascript" src="JavaScript/swfobject.js"></script>
<Skripttyp="text/javascript">
(Funktion() {
var xmlHttp,
Ergebnis,
FlashURL = "http://www.pec365.com/Flash/20071113.swf";

var checkFlashURL = Funktion(URL) {
xmlHttp = GetXmlHttpObject();
xmlHttp.onreadystatechange = Funktion() {
wenn ( xmlHttp.readyState == 4 ) {
wenn (xmlHttp.status == 200 ||
xmlHttp.status == 302 ) {
Rückgabe (Ergebnis = wahr);
}
}
};
xmlHttp.open("HEAD", URL, wahr);
xmlHttp.send(null);
};
var GetXmlHttpObject = function() {
var xmlHttp = null;
versuchen {
// Firefox, Opera 8.0+, Safari
xmlHttp = neue XMLHttpRequest();
}
fangen (e) {
// Internet Explorer
versuchen {
// Älterer IE
xmlHttp = neues ActiveXObject("Msxml2.XMLHTTP");
} fangen (e) {
// Neuer IE
xmlHttp = neues ActiveXObject("Microsoft.XMLHTTP");
}
}

xmlHttp zurückgeben;
};
// wird verwendet, um zu prüfen, ob die angegebene Flash-Datei auf dem Server vorhanden ist
: Überprüfen Sie die FlashURL (FlashURL);
fenster.onload = funktion() {
wenn ( Ergebnis ) {
swfobject.embedSWF(flashURL, "flashcontent", "304", "367", "10.0.0", "expressInstall.swf", {}, { Qualität:"autohigh", wmode:"transparent" }, {});
}
anders {
window.alert("Ihre Flash-Adresse ist ungültig, bitte überprüfen Sie sie sorgfältig"); // Wird nur verwendet, um beim Debuggen zu überprüfen, ob die Flash-Adresse korrekt ist
}
}
})();
</Skript>
</Kopf>
<Text>
<Formular-ID="Formular1">
<div id="Flashinhalt">
<a href="http://www.adobe.com/go/getflashplayer">
<img src="upload/2022/web/get_flash_player.gif" alt="Adobe Flash Player herunterladen" border="0" />
</a>
</div>
</form>
</body>
</html>

Wow, ich habe mehrere Stunden mit diesen beiden Artikeln verbracht. Ich bin versehentlich bis fast 22 Uhr in der Firma geblieben, und dann kam der Sicherheitsbeamte, um mich rauszuwerfen. Ich möchte schnell fertig werden. Ich werde den Text überarbeiten, wenn ich morgen bei der Arbeit Zeit habe, haha.

<<:  JavaScript-Grundlagen: Funktion zur sofortigen Ausführung

>>:  Hinweise zur Groß-/Kleinschreibung bei MySQL

Artikel empfehlen

Lernen Sie die Vue-Middleware-Pipeline in einem Artikel kennen

Beim Erstellen eines SPA müssen Sie häufig bestim...

Beispielerklärung für langsame MySQL-Abfragen und -Protokolle

1. Einleitung Durch Aktivieren des Slow Query Log...

Tiefes Verständnis des Mechanismus des CSS-Hintergrund-Blend-Modus

Dieser Artikel darf gerne geteilt und zusammengef...

Detaillierte Erklärung der Set-Datenstruktur von JavaScript

Inhaltsverzeichnis 1. Was ist Set 2. Konstruktor ...

So fügen Sie Bilder in HTML-Seiten ein und fügen Kartenindexbeispiele hinzu

1. Im Web unterstützte Bildformate: GIF: kann 256...

Schritte zur Installation von cuda10.1 unter Ubuntu 20.04 (grafisches Tutorial)

Vorbereitung vor der Installation Der Hauptzweck ...

Änderung und Abfrage von Python MySQL-Datenbanktabellen

Python stellt eine Verbindung zu MySQL her, um Da...

8 JS reduziert Verwendungsbeispiele und reduzierte Betriebsmethoden

reduce Methode ist eine Array-Iterationsmethode. ...

Tabellen in HTML aufteilen und zusammenführen (colspan, rowspan)

Der Code demonstriert die horizontale Zusammenfüh...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.17

In diesem Artikel wird die Installations- und Kon...

vue+element-ui implementiert die Kopfnavigationsleistenkomponente

In diesem Artikel wird der spezifische Code von v...