3

開発中の Web サイトに特有の問題があります。問題は iPhone (safari) でのみ発生します。

私のセットアップは次のとおりです。

1) 私は CLIENT ページを持っています - 最初のページを表示し、ログイン ボタンがあります。

2) ユーザーが LOGIN ボタンをクリックすると、LOGIN ポップアップ/新しいウィンドウが表示されます (これは、ターゲット = '_blank' で jquery 'submit' 関数を使用してフォームを投稿することによって作成されます)。

CLIENT.html

var formData = '<form style="display: none; margin: 0; padding: 0; border-width: 0; overflow: hidden;" id="MyFormId" action="https://MYSERVER.COM/v2/widgets" method="POST" target="_blank"><input type="hidden" name="action" value="connect"/><input type="hidden" name="referringURL" value="http://MYCLIENT.com/ClientPage.html"/><input type="hidden" name="cartOwnerId" value="A2R6QUFKT17A1O"/></form>';


jQuery("#"+this.getLocation()).append(formData);


jQuery("#"+formIdName).submit();      

3) ユーザーは LOGIN ウィンドウで資格情報を入力し、送信します。認証のために SERVER に対して呼び出しが行われます。成功した認証で、私たちはしたいです

  • ログイン画面を閉じる
  • クライアントページを新しい URL にリダイレクト

4) クライアントウィンドウ (ログインポップアップ/新しいウィンドウを作成した) がフルスクリーンに戻らないことを除いて、すべてが計画どおりに機能します (ログインウィンドウが閉じた後)。

LOGIN ページの JavaScript に window.opener.focus() を配置しようとすると、CLIENT ページにフォーカスが移りますが、LOGIN ページは閉じません (window.opener.focus( の前に window.close を配置しても) )))

LOGIN html
jQuery(document).ready(function() {
  ...
  ...

    window.close();

    window.opener.focus()
});

ログイン ウィンドウを閉じ、クライアント ページを新しい URL にリダイレクトし、クライアント ウィンドウを全画面表示にする方法に関するヒントはありますか?

ヒントをいただければ幸いです。

ありがとう

4

1 に答える 1

0

このようなことをします:

オープナーで:

window.closePopup = function () {
  window.popup.close();
  window.focus();
}
// open login popup
window.popup = window.open(...);

ユーザーがポップアップウィンドウにログインした後:

window.opener.closePopup();

つまり、ウィンドウ自体を閉じるのではなく、オープナーにポップアップを閉じさせます。私はこのようなことを試しましたが、時々うまくいくようです...なぜうまくいかないのかを完全に特定することはできませんでした。私の場合に起こることの1つは、ユーザーが機能するためにポップアップウィンドウを操作する必要があるwindow.opener.closePopup()ことです...

于 2012-10-26T18:03:33.600 に答える