2013-06-18 6 views
6

を閉鎖するために、ユーザーが戻ってからあるとき、私はJavaScriptを使用して私のウェブサイト上の銀行の支払いのための新しいタブを開いて、そして離れて移動するメインウィンドウずに、Javascriptが新しいタブを開いて、それが

したい待ちます私は返信URLの返信を(可能であれば)他のウィンドウから検出したい、またはトランザクションが完了したことをメインウィンドウに通知し、データベースの更新をチェックする必要があります。

ロードされたセッションでpopup->login->popup closes->main window reloadsなどのいくつかのWebサイトでこの現象が見られました。問題はこのメソッドが呼び出されているかわからないため、私が探しているキーワードがわかりません。 。私はまさにこのメソッドの名前、またはどのようにそれは(ジャバスクリプトか何かで、特定のキーワードとして)行われているのいずれかである必要がある何

事前

+2

新しいウィンドウとタブを使用するのではなく、モーダルポップアップを使用することを強くお勧めします。 – Smeegs

+0

名前を知らない特定のシステムは、OAuthです(たとえば、[OAuth 2.0経由でGoogleと認証する方法はポップアップですか?](http://stackoverflow.com/questions/7947038/how-to- google-via-oauth-2-0-in-a-popup) – apsillers

+0

@Javalsuこれを使用すると、ウェブサイトまたはIframeでSSLが必要ですか?フィッシングである可能性のあるURLではなく、URLからのウェブサイトであることがわかっている人は、より安全だと感じています。 –

答えて

2

おかげでポップアップを閉じる前に、へopener.someFunction()を試してみてくださいそれを開いたウィンドウ内の関数を呼び出します。ユーザーが最初のウィンドウを閉じた場合、またはユーザーが別のサイトに移動した場合、または2つのウィンドウが何らかの理由で別のドメインにある場合、これは失敗します。

+1

この方法をお寄せいただきありがとうございます。回答が追加されました。窓が異なるドメインにある場合、窓は互いに通信できません。銀行のゲートウェイがオープナーを実行するために自分のドメインのURLに戻るのを待たなければなりませんでした.function()はこれを答えとみなします。 –

6

window.openを使用して新しいページを開き、定期的にウィンドウが閉じられているかどうかを確認できます。開いているウィンドウへの参照はwindow.openによって返され、閉じられているかどうかはwindowHandle.closedで確認できます。

btn.onclick = function() { 
    var win = window.open(
     "http://www.stackoverflow.com", 
     "Secure Payment"); 
    var timer = setInterval(function() { 
     if (win.closed) { 
      clearInterval(timer); 
      alert("'Secure Payment' window closed !"); 
     } 
    }, 500); 
} 

参照してください、また、このshort demo

window.openとベストプラクティスの詳細については、MDNをご覧ください。

+0

私はwindow.openを使いました。新しいウィンドウが終了したらwindow.closeを行いますが、ウィンドウが早すぎるかどうかをチェックするメソッドは実装されていません。 –

+0

ありがとう、これは私のために働く。 :) –

関連する問題