2009-05-27 13 views
2

モーダルダイアログでページが読み込まれたときを検出する方法はありますか?あなたがwindow.showModalDialog()を呼び出すときなど。javascriptでモーダルダイアログを検出する

少し背景:私は、モーダルダイアログに表示されるログインページのフォーム認証の問題を回避しようとしている、その後、サイトの残りの部分はユーザーがログインする

任意のアイデア?

答えて

6

window.openの場合、現在表示しているページに親があるかどうかを確認できます。

function parentExists(){ 
    return (window.opener != null)? true : false; 
} 

ログインページが読み込まれたときにこれを呼び出します。 trueを返すと、ポップアップウィンドウ(またはモーダル)になります。その後、ページを閉じて親をリダイレクトすることができます。

オープナーにアクセスできないため、モーダルボックスの場合はもう少し難しいです。

window.showModalDialog('test.htm', self, <optional options>); 

これが何かは、ウィンドウのarguementsに渡されることを確認します:まず、すべてのモーダルボックスがこれに似て開かれていることを確認してください。

今すぐあなたのログインページに次のコードを追加します。

function parentExists() 
{ 
    var opener = window.dialogArguments; 
    return (opener == null)?false:true; 
} 

編集:私がいた ...ので、ここに私の2centsだ、

+0

ポストは明らかな理由のためにここに滞在し、モーダルボックスに関する情報を追加しましたページがモーダルダイアログとしてロードされているかどうかを確認しようとしています(http://help.dottoro.com/ljdlgxbu.php)。 しかし、私はその機能を模倣することもできませんでした。 window.openerがnullであるかどうかを確認しますが、これは機能しますが、リンクがクリックされて子ページ。だから私のために、これは問題を解決しません。 2セントの終わり。 –

関連する問題