ページがモーダルダイアログにロードされたことを検出する方法はありますか?window.showModalDialog()を呼び出すときなど。
少し背景:モーダルダイアログに表示されるログインページのフォーム認証の問題を回避しようとしています。その後、ユーザーがログインしたときにサイトの残りの部分が表示されます。
何か案は?
ページがモーダルダイアログにロードされたことを検出する方法はありますか?window.showModalDialog()を呼び出すときなど。
少し背景:モーダルダイアログに表示されるログインページのフォーム認証の問題を回避しようとしています。その後、ユーザーがログインしたときにサイトの残りの部分が表示されます。
何か案は?
window.open の場合、現在表示しているページに親があるかどうかを確認できます。
function parentExists(){
return (window.opener != null)? true : false;
}
ログインページが読み込まれるときにこれを呼び出します。true が返された場合は、ポップアップ ウィンドウ (またはモーダル) にいます。その後、ページを閉じて、親をリダイレクトできます。
オープナーにアクセスできないため、モーダル ボックスの場合は少し注意が必要です。まず、すべてのモーダル ボックスが次のように開いていることを確認します。
window.showModalDialog('test.htm', self, <optional options>);
これにより、ウィンドウの引数に何かが確実に渡されます。
ログインページに次のコードを追加します。
function parentExists()
{
var opener = window.dialogArguments;
return (opener == null)?false:true;
}
編集:モーダルボックスに関する追加情報