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
Was ist der Zweck dieses Satzes? Code kopieren Der...
01. Befehlsübersicht Basisname - entfernt Verzeic...
Inhaltsverzeichnis Bilderfassung durch SVG CSS-Te...
Inhaltsverzeichnis Szenario Code-Implementierung ...
1. Warum verpacken? Erleichtert das Aufrufen von ...
Wie erstelle ich mit HTML, CSS und JS einen einfa...
Frage Vor kurzem bin ich auf die Anforderung gest...
Vorwort Dieser Artikel ist ziemlich ausführlich u...
1. Anwendung von Multimedia in HTML_Flash-Animati...
Inhaltsverzeichnis 1. Einführung in NFS-Ganesha 2...
Inhaltsverzeichnis Zuerst müssen wir das Seitenla...
HTML-Struktur <Text> <div Klasse="W...
(Win7-System) Tutorial zur Installation einer vir...
In diesem Artikel wird die spezifische Methode zu...
Inhaltsverzeichnis forEach() Methode So springen ...