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
1. Ändern Sie die Firewall-Einstellungen und öffn...
Inhaltsverzeichnis Prototyp-Kettendiagramm Grundl...
In diesem Artikelbeispiel wird der spezifische Co...
Wenn Sie einer Option das Attribut selected = &quo...
Goldene Regeln der Leistung: Nur 10 bis 20 % der ...
In diesem Artikel wird der spezifische Code für d...
Vorwort Ich bin bei der Arbeit auf folgende Situa...
So führen Sie eine paginierte Abfrage durch: 1. F...
CSS spielt auf einer Webseite eine sehr wichtige ...
Freunde, die Speicherplatz gekauft und Websites er...
Hintergrund Das Abrufen des langsamen Abfrageprot...
1. Bereiten Sie zunächst die MySQL- und Eclipse-U...
Ergebnis: Implementierungscode: html <div Klas...
Hintergrund Lassen Sie mich zunächst den Hintergr...
Mögliche Lösungen 1. Math.random generiert Zufall...