最近、機能拡張の要件を受け取りました。ただし、新しい要件で参照されているデータインターフェイスは、XML 形式でのみ提供できます。残念ながら、私自身のスキルは限られており、JS で理想的なソリューションを思いつくことができませんでした。AS エンジニアに助けを求めなければなりませんでした。約 2 日間の共同デバッグの後、ようやくさまざまなブラウザーでのクロスドメイン アクセスを解決しました。 デモ版のコードは下記に記載されています。 親ページの HTML: コードをコピー コードは次のとおりです。<iframe id="hiddenIframe" style="width:0px; height:0px0; border:0px none; *width:1px; *height:0px; overflow:hidden;"></iframe> <button value="データを取得" onclick="getData()"></button> <!-- display:none; または visibility: hidden; を直接使用しないのはなぜですか? [後で説明: タグ] --> 親ページ JS: コードをコピー コードは次のとおりです。ドキュメント.domain = "xxx.com"; 関数 getData(データ) { if (データ == "" || データ == 未定義 || データ == null) { sendData("a=1&b=2"); //パラメータの形式は任意で、getリクエストを行うときに送信したパラメータと同じです。 } それ以外 { アラート("取得したデータ: " + データ) } } 関数sendData(パラメータ) { var childWindow = document.getElementById('testIframe').contentWindow; childWindow.sendData(param); // 駆動関数、隠しドメインのメソッドを駆動して AS の API メソッドを呼び出して XML を取得します } 関数変更() { document.getElementById("testIframe").src = "xx.html"; // 隠しドメイン URL } サブページ JS: コードをコピー コードは次のとおりです。ドキュメント.domain = "xxx.com"; 関数sendData(paramFromParent) { var serverUrl = 'xxx.com'; //ここで、paramFromParent が処理されて xxx.xml の完全な URL が取得されます //次に、AS の URLLoader メソッドを呼び出して URL の下のデータを取得します。 // 取得が成功したら、次のメソッドを呼び出して親ページの getData メソッドを駆動します。 } 関数 getData(backData) { ウィンドウの親からデータを取得します(backData); } タグ: display または visibility が使用されない理由は、IE ブラウザでは、iframe 要素がこれら 2 つのポイントとしてスタイル設定されている場合、フレーム内の JS が読み込まれず、通信が実行できないためです... 簡単に理解するには、上の写真を見れば明らかです ![]() プログラムの流れ: 1. JSをロードし、親ページウィンドウの下にsendDataメソッドとgetDataメソッドを宣言します。 2. iframeを読み込む 3. iframe内でASコードを実行する 4. ASクロスドメイン取得XMLファイルの解析と処理 5. window.parent.getDataを呼び出して親ページのJSを駆動し、解析されたデータを渡す |
<<: type="file" の入力ボックスのスタイル変更の概要
MySQL の日付型単一行関数: CURDATE()またはCURRENT_DATE()は現在の日付を...
webpackはCSSファイルとその設定をロードします複数の CSS ファイルを作成した後、HTML...
目次K8Sマスター基本アーキテクチャポッドオーケストレーションコンセプトPod オブジェクトのプロパ...
目次序文1. vue-cliを使う1. Toastコンポーネントを定義する2. main.jsで設定...
目次序文LEDトリガー探索を始めるLEDデバイス登録LEDディレクトリ類推によって理解するクラスディ...
HTML テーブルを使用する場合、行間隔を変更する必要がある場合がありますが、余白、パディング、折り...
まずサンプルコードを見てみましょう: 1. 共通パラメータ tcpdump -i eth0 -nn ...
序文この記事では主に、MySQL ストレージ テーブル エラー「java.sql.SQLExcept...
環境に関する声明ホストOS: Cetnos7.9 最小インストールdocker バージョン: 20....
目次序文Lua スクリプトnignx.conf の設定Dockerfileの設定序文データベースやそ...
参考までに、JavaScriptのオブジェクトとメソッドを使用して実装されたWebピンボールゲームを...
1. カーディナリティとは何ですか?カーディナリティとは、MySQL テーブルの列内の異なる値の数を...
** Linuxにmysql-8.0.20をインストールする**環境の紹介オペレーティングシステム:...
導入MySQL の SQL クエリ ステートメントで is null、is not null、!= ...
目次ライフサイクルの変化反応的な参照vue2.x では ref を使用して要素タグを取得します。vu...