Kürzlich erhielt ich eine Anforderung für eine Funktionserweiterung. Die in der neuen Anforderung referenzierte Datenschnittstelle kann jedoch nur im XML-Format bereitgestellt werden. Leider sind meine eigenen Fähigkeiten begrenzt und mir fiel keine ideale Lösung in JS ein. Ich musste die Hilfe von AS-Ingenieuren in Anspruch nehmen. Nach fast 2 Tagen gemeinsamer Fehlerbehebung habe ich endlich den domänenübergreifenden Zugriff unter verschiedenen Browsern gelöst. Der Code der Demoversion ist unten aufgeführt: HTML der übergeordneten Seite: Code kopieren Der Code lautet wie folgt:<iframe id="hiddenIframe" style="Breite:0px; Höhe:0px0; Rahmen:0px keine; *Breite:1px; *Höhe:0px; Überlauf:versteckt;"></iframe> <button value="Daten abrufen" onclick="getData()"></button> <!-- Warum nicht direkt display:none; oder visibility: hidden; verwenden? [Später erklären: Tag] --> JS der übergeordneten Seite: Code kopieren Der Code lautet wie folgt:Dokument.Domäne = "xxx.com"; Funktion getData(Daten) { wenn (Daten == "" || Daten == undefiniert || Daten == null) { sendData("a=1&b=2"); //Das Parameterformat ist beliebig und entspricht den Parametern, die Sie bei einer Get-Anfrage senden. } anders { alert("Erfasste Daten: " + Daten) } } Funktion sendData(param) { var childWindow = document.getElementById('testIframe').contentWindow; childWindow.sendData(param); // Antriebsfunktion, Antriebsmethode in der verborgenen Domäne, um die API-Methode in AS aufzurufen und XML zu erhalten } Funktion ändern() { document.getElementById("testIframe").src = "xx.html"; //Versteckte Domänen-URL } Unterseiten-JS: Code kopieren Der Code lautet wie folgt:Dokument.Domäne = "xxx.com"; Funktion sendData(paramFromParent) { var serverUrl = "xxx.com"; //Hier wird paramFromParent verarbeitet, um die vollständige URL von xxx.xml zu erhalten. //Dann rufen Sie die URLLoader-Methode von AS auf, um die Daten unter der URL abzurufen // Rufen Sie nach erfolgreicher Erfassung die folgende Methode auf, um die Methode getData auf der übergeordneten Seite anzusteuern } Funktion getData(backData) { window.parent.getData(zurückDaten); } Tag: Der Grund, warum Anzeige oder Sichtbarkeit nicht verwendet wird, liegt darin, dass im IE-Browser, wenn Ihr Iframe-Element als diese beiden Punkte formatiert ist, das JS im Frame nicht geladen wird und keine Kommunikation durchgeführt werden kann ... Zum besseren Verständnis: Das Bild oben spricht für sich selbst ![]() Programmablauf: 1. Laden Sie JS und deklarieren Sie die Methoden sendData und getData unter dem übergeordneten Seitenfenster 2. Iframe laden 3. Führen Sie den AS-Code im Iframe aus 4. AS-domänenübergreifendes Analysieren und Verarbeiten von XML-Dateien 5. Rufen Sie window.parent.getData auf, um das JS der übergeordneten Seite zu steuern und die analysierten Daten zu übergeben |
<<: Zusammenfassung der Stiländerungen des Eingabefelds vom Typ „file“
>>: CSS löst das Fehlausrichtungsproblem von Inline-Blöcken
Bei der Durchführung eines Projekts stößt man unw...
In diesem Artikel finden Sie das Installations- u...
Das Plugin wird im Firefox-Browser installiert. D...
Einführung von zwei Methoden zum Anzeigen von MyS...
Inhaltsverzeichnis Vorwort Hallo Welt Bild Rahmen...
1. Die Bedeutung von Indizes Indizes werden verwe...
Inhaltsverzeichnis Vorwort Umfeld Installieren Er...
Hintergrund: Die Site ist vom Front- und Back-End...
<br />Ich habe die in meiner Arbeit verwende...
Hinweis: Beim Projektstart ist kein Fehler aufgru...
Wirkung Derzeit gibt es 2 Projekte (Projekt1, Pro...
Ein Ereignis ist eine vom Benutzer oder dem Brows...
Vorwort Die MySQL Master-Slave-Replikation ist di...
Phänomen: Nach MySQL Version 5.7 ist der Standard...
1. Was ist Eventdelegation? Ereignisdelegierung: ...