0

firefox で問題が発生しています。これまでの私の調査によると、私の問題に対処するための信頼できる方法は実際にはありませんが、念のため尋ねたいと思っています。

ページのボタンを押すとトリガーされる新しいウィンドウを開くための次のjavascript/jqueryがあります。

alipayTransactionModalTrigger.click(function() {
     NIWindow=window.open("<!--ALIPAY_CONF_REDIRECT_URL-->", "NI payment");
     alipayTransactionModal.dialog("open");
  });

Chrome と Firefox では、これにより新しいフレームが開き、フレームがフォーカスされます。これで問題ありません。ただし、ユーザーがこの新しいフレームを開いたままにしておくと、元のページに戻ってきます。ボタンを押すと、このイベントを再度トリガーできます。これが発生した場合、新しいフレームは正常にリロードされますが、Firefox では、この更新時に新しいフレームがフォーカスを取得しません。最初の新しいフレームの読み込みにフォーカスを移す理由はわかりませんが、フレームが同じイベントトリガーでリフレッシュされた場合はフォーカスを移しません。IEでこれを確認する勇気はまだありません...

これは、確実に制御できないものの 1 つですか? または、これを行う方法はありますか?上記のコードの最初のウィンドウを開く行の後に NIWindow.focus() を使用しようとしたことに注意してください。運がない。

おそらくアラートの使用について何か読んだと思いますが、説明されているソリューションを実装する方法がわかりませんでした。それは少しハックなソリューションであると読みました。

いつでも新しいウィンドウ「_blank」を開くことができ、それによってフォーカスが確保されますが、新しく開かれたフレーム URL は親ウィンドウに基づくパラメーターを使用します。私はそのコードにアクセスできないため、このリダイレクトから応答が返されるまで、データが一致することを確認するチェックを追加する方法はありません

4

1 に答える 1

0

新しいウィンドウごとに新しい名前を付けます。名前を再利用する理由はあり"NI payment"ますか?

コードがこのウィンドウ名に依存している場合は、名前の代わりにウィンドウ参照 (NIWindow) を直接渡すことを検討する必要があります。魔法のスーパーグローバルに依存する代わりに、依存関係を注入/渡すことは、一般的により良いアプローチです。

于 2013-02-01T16:16:34.573 に答える