Uncaught DOMException。原点クロスドメイン問題解決フレームがブロックされた
2022-02-08 16:43:48
最近、ポップアップレイヤーで他のシステムからページを呼び出し、選択されたコンテンツを取得する必要があるプロジェクトを書きましたが、Uncaught DOMExceptionに遭遇しました。起源 "url" を持つフレームがクロスオリジンフレームにアクセスするのをブロックしました。.
postMessage()メソッドを使用すると、ドメインをまたいだ値の受け渡しの問題が解決されるので、以下にposetMessage APIを掲載します。
https://developer.mozilla.org/zh-CN/docs/Web/API/Window/postMessage
さっそく、コードを見てみましょう。
フロントエンドのフレームワークとしてレイヤーを使っているので、window.open()で開くポップアップレイヤーとは少し違うかもしれませんね。
親ページ
layer.open({
//layer sends a message to the child page when the layer popup layer is successfully opened
success: function (layero, index) {
var data = $('[id*="id"]').val()
//because it's a company intranet, the url used is *
window[layero.find('iframe')[0]['name']].postMessage(data, '*');
},
//Get the return value of the subpage after clicking the confirm button on the page
yes: function (index, layero) {
//Send a 'return' to indicate that the subpage needs a return value
window[layero.find('iframe')[0]['name']].postMessage('return', '*')
layer.close(index);
}
});
//Listen to the postMessage of the subpage
function receiveMessage(event) {
console.log(event.data)//Get the value passed back from the subpage
$("#id").val(event.data)
}
window.addEventListener('message', receiveMessage, false);
ここで、Urlパラメータについての注意事項がありますので、使用する際はセキュリティに注意する必要があります。
子ページは親ページから送られた値を受け取る
window.addEventListener('message',function(e){
var value = e.data;
// The child page calls the return method to send data to the parent page if the value of the received data is 'return'
if (value ! = null && value == 'return')
// return data
returnSelectUser()
else if (value ! = null && value.trim().length ! = 0) {
//do something
}
}, false);
// send data to the parent page
function returnSelectUser() {
var value = $("#id").text();
console.log(value)
parent.postMessage(value, "*");
}
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Chrome Developer ToolsでリソースがDocumentと解釈され、MIMEタイプapplication/jsonの警告で転送される。
-
[解決済み] jqueryで日付を比較する
-
[解決済み] jQueryを使って入力が空かどうかをチェックする
-
[解決済み] jQueryでページスクロールをプログラム的に無効にする方法
-
[解決済み] jQueryで関数呼び出しを繰り返す方法
-
[解決済み] jQuery - クラスの代わりにIDを追加する
-
[解決済み] jqueryでアンカークリックをシミュレートするにはどうしたらいいですか?
-
[解決済み] jQuery .val()が入力フィールドで機能しない
-
[解決済み] Jquery テーブルの行を隠す
-
[解決済み] jQuery バリデーションで、少なくとも1つのチェックボックスが選択されていること