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
Um Als ich kürzlich Vue lernte, schrieb ich ein k...
Einführung Basierend auf Docker-Containern und Do...
Inhaltsverzeichnis 01 Häufige Fehler 1 02 Häufige...
Der Anwendungsbereich von CSS ist global. Wenn da...
Der Effekt zeigt, dass sich zwei Browser gegensei...
Tipp 1: Konzentriert bleiben Die besten mobilen A...
In diesem Artikel wird der spezifische Code von V...
Mininet Mininet ist eine leichtgewichtige, softwa...
Vorwort: Apropos Sandboxen: Wir denken vielleicht...
Voraussetzungen für die Installation von MySQL: I...
Um die Tabelle zu verschönern, können Sie für die...
Lösung für das Problem, dass das Ubuntu-Dualsyste...
Inhaltsverzeichnis 1. Szenenlayout 2. Fügen Sie e...
In diesem Artikel wird der spezifische Code von J...