私はウィジェットを作っています。ポップアップで特定のイベントが発生した後、親ウィンドウを特定のURLにリダイレクトする必要があります。どのようにこれを行うことができます。クロスサイトポップアップからwindow.openerへのアクセス方法
window.opener.location.replace(url);
私はウィジェットを作っています。ポップアップで特定のイベントが発生した後、親ウィンドウを特定のURLにリダイレクトする必要があります。どのようにこれを行うことができます。クロスサイトポップアップからwindow.openerへのアクセス方法
window.opener.location.replace(url);
あなたはそれを行うことはできません。クロスサイトスクリプティングは、ほとんどのブラウザでは許可されていません。
あなたが、しかし、ここで説明するクロスドキュメントメッセージングを介して他のウィンドウと通信することができ:https://developer.mozilla.org/en/DOM/window.postMessage
ほとんどのことができますには、開幕戦にポップアップからメッセージを送信して、そのようなメッセージを聞くことがありますオープナー。オープナーは、それ自身の位置を変更する必要があります。
// popup:
window.opener.postMessage('replace your location', '*');
// opener:
window.onmessage = function (e) {
if (e.data === 'replace your location') {
window.location.replace(...);
}
};
IEIの場合でも、FYI postMessageはポップアップの間IEでは動作しません –
私のオープナーは別のドメインwww.mydomain.comにある必要があります。私は彼にいくつかの機密データを送りたい。私のオープナーが本当にwww.mydomain.comかどうか、どうすれば確認できますか? –
しかし、私の場合は 'window.opener'自体がnullを返します。それでは、どのようにメッセージを投稿しますか? –
状況によっては、異なるサブドメインのみではなく完全に異なるドメインでのみ可能です。 Cross site scripting on the same domain, different sub domainsを参照してください。
しかし、postMessage()
は現在のブラウザで広く入手できるので、@ ian-kucaが示唆するように、常にpostMessage()
を好むべきです。
安全でないjavascriptがURLでフレームにアクセスしようとしました)) – NiLL
セキュリティ制限によって防止されるクロスドメインスクリプトのように聞こえます。または私は間違って質問を読んでいますか? – COBOLdinosaur
私はkmowを望んでいますが、この制限を解決できますか? – NiLL