JS Cross-Domain-XML – mit AS URLLoader

JS Cross-Domain-XML – mit AS URLLoader
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

Artikel empfehlen

Häufige Probleme und Lösungen beim Erstellen von MySQL MGR

Inhaltsverzeichnis 01 Häufige Fehler 1 02 Häufige...

CSS-Benennung: BEM, Scoped CSS, CSS-Module und CSS-in-JS erklärt

Der Anwendungsbereich von CSS ist global. Wenn da...

Vue verwendet WebSocket, um die Chat-Funktion zu simulieren

Der Effekt zeigt, dass sich zwei Browser gegensei...

10 Tipps für das User Interface Design mobiler Apps

Tipp 1: Konzentriert bleiben Die besten mobilen A...

Vue verwendet Plug-Ins, um Bilder proportional zuzuschneiden

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

Probleme und Lösungen bei der Installation von Mininet auf Ubuntu 16.04.4LTS

Mininet Mininet ist eine leichtgewichtige, softwa...

Ein kurzer Vortrag über JavaScript Sandbox

Vorwort: Apropos Sandboxen: Wir denken vielleicht...

CentOS7 64-Bit-Installation MySQL Grafik-Tutorial

Voraussetzungen für die Installation von MySQL: I...

...

So verwenden Sie einen Gamecontroller in CocosCreator

Inhaltsverzeichnis 1. Szenenlayout 2. Fügen Sie e...

JavaScript Canvas implementiert Tic-Tac-Toe-Spiel

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