2016-07-31 12 views
1

私は基本的なoauth認証プロトタイプを作成しています。私はHTML(parent.htmlと呼ばれています)を使って目的を果たす子ウィンドウを開きました。子ウィンドウはプロバイダのWebサイトにリダイレクトされ、次に登録されたページにリダイレクトされます。私の登録したページは、子ウィンドウを閉じるためにjavascriptを使ってwindow.close();と呼ぶでしょう。Microsoft Edgeに警告が表示されるのはなぜですか?

私はMicrosoft Edgeでプロトタイプを試したときに、javascriptが子ウィンドウを閉じることを試みるたびに警告が表示されていました。私はドロップボックスのようなoauth認証のためのポップアップウィンドウを使用する他のウェブサイトをテストしました、認証が完了し、子ウィンドウが閉じようとしていたときに私は同じクローズ警告を見ませんでした。

Edgeはこの警告ダイアログをなぜ表示するのですか(そしてどのような状況で)?どんな情報も有用であり、高く評価されます。ありがとう。

Screenshot of the close warning

+0

誰がこの警告ウィンドウを開いたのですか?あなたかjavascript? – acdcjunior

+0

'window.open'を使って開いたJavaScriptを使ってウィンドウを自動的に閉じることができます。 –

+0

子ウィンドウはparent.htmlによってchild = window.open()を使用して開かれましたが、いくつかのリダイレクション後に子ウィンドウはwindow.opener参照を失い、親ウィンドウも子参照を失います。それが理由であるかどうか分からない。 –

答えて

0

これは、MSエッジのポップアップブロッカーと自動スクリプト遮断機能です。基本的には、これらの2つの機能は、ページの読み込み中にユーザーの操作なしで自動的に実行されるスクリプトをブロックしようとします。例えば、これら2つのスクリプトは、(彼らはIEで動作する)MSエッジに

をブロックされます。

var w = window.open("page.htm"); //w will be null. 

window.close(); //displays a warning. 

あなたが関数内でそれらを配置し、クリックイベントからそれらを呼び出す場合、同じ2行は動作します例えば、ボタンを押す。


ソリューション:

は、ポップアップウィンドウを閉じて、ポップアップウィンドウにその関数を呼び出し、それをポップアップウィンドウへの参照を渡すために、メインウィンドウで関数を作成します。

// in main window 
function closePopup(w) { 
    w.close(); 
} 

// in popup window 
opener.closePopup(this); 
関連する問題