0

私のサイトには、メイン ウィンドウではなくシャドーボックス ウィンドウで開くページがいくつかあります。私の問題は、ユーザー セッションの有効期限が切れた場合、ユーザーがシャドウ ボックスで開くリンクの 1 つをクリックすると、シャドウ ボックス内のログイン ページにリダイレクトされることです。これは望ましくありません。私はこれを処理する最善の方法を考えようとしています - 私が考えた方法の1つは、少し不器用に思えますが、ログインページで、シャドウボックスにいるかどうかをテストし、それを閉じているかどうかをテストすることでした親ウィンドウをログインページにリダイレクトします。

a) これは賢明な計画のように思えますか? ログインページに以下を追加しました。

  $(document).ready(function(){
    if(window.parent.location != window.location){
      window.parent.location.href = window.location;
    }
  }

しかし、シャドウボックスがページの読み込みを完了してからリダイレクトするまで待つ必要があります。だからそれは働いていますが、私が言うように少し不器用です。より良い方法はありますか?

アドバイスに感謝します - マックス

4

3 に答える 3

1

この投稿が古いことは知っていますが、最近同じ課題に対処する必要があり、他の誰かがこの投稿で答えを探している可能性があると考えました.

上記の回答は素晴らしいですが、「ページがシャドウボックスにあるかどうかを確認するにはどうすればよいですか?」ではなく、「シャドウボックス内でページが読み込まれないようにするにはどうすればよいですか?」という元の質問にはうまく答えていません。シャドーボックスを閉じた後、再度読み込みますか?」

これが私がしたことです:

アクティブなセッションをチェックするコードは、ログアウト ページに転送します。ログアウト ページは、残りのセッション値をクリアし、ユーザーをログイン ページに送ります。onload 関数内のログアウト ページに次のコードを追加しました。

if (window.parent) {
    window.parent.location.replace('your-login-url');
} else {
    window.location.replace('your-login-url');
}

ログアウト ページが呼び出されると、ブラウザがログイン ページ ビューを取得する前にシャドウボックスがクリアされます。よく働く。これが誰かを助けることを願っています。

于 2011-04-07T20:26:40.990 に答える
0

を使用しisOpen()ます。

http://www.shadowbox-js.com/api.html

シャドウボックス内のブラウザの場所にアクセスする場合this.link.baseURIと同じかどうかを確認してください。window.location

于 2010-05-26T12:38:50.183 に答える
0

ログインページでこれを試してください:

var Shadowbox = window.parent.Shadowbox;

次に、Shadowbox が未定義かどうかを確認します。

于 2010-09-07T22:29:41.737 に答える