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

Virtual Box-Tutorialdiagramm zum Duplizieren virtueller Maschinen

Nachdem man sich an VM gewöhnt hat, ist der Wechs...

Einführung und Verwendung der Angular-Pipeline PIPE

Vorwort PIPE, übersetzt als Pipeline. Angular Pip...

MySQL-Optimierung: Cache-Optimierung (Fortsetzung)

In MySQL gibt es überall Caches. Wenn ich den Que...

Installieren Sie mehrere PHP-Versionen für Nginx unter Linux

Wenn wir die LNPM-Serverumgebung installieren und...

MySQL 8.0.19 Installations-Tutorial

Laden Sie das Installationspaket von der offiziel...

Grafisches Tutorial zur Installation von MySQL 8.0.15 und Datenbankgrundlagen

Die Installation der MySQL-Software und die Daten...

Detaillierte Erklärung der Top-Befehlsausgabe in Linux

Vorwort Ich glaube, jeder hat den Befehl top unte...

Detailliertes Tutorial zur Installation von MySQL unter WINDOWS

1. Laden Sie das Installationspaket herunter -Wäh...

Element verwendet Skripte, um automatisch neue Komponenten zu erstellen

Inhaltsverzeichnis Hintergrund Wie funktioniert d...

Vue implementiert die Anmeldung per Mobiltelefon-Bestätigungscode

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

Mehrere Möglichkeiten zum Löschen von Arrays in Vue (Zusammenfassung)

Inhaltsverzeichnis 1. Einleitung 2. Mehrere Mögli...

Beispielanalyse der MySQL-Indexabdeckung

Dieser Artikel beschreibt die MySQL-Indexabdeckun...