1

したがって、このアプローチを1つのサイトで見たことがあり(覚えていませんが)、次のように機能します。

まず、簡単なログインフォームを備えた簡単なページがあります。ただし、フォームのログインボタンをクリックしたときに、ユーザーとパスワードの検証が肯定的であり、サーバーからの応答も肯定的である場合、新しいポップアップウィンドウが表示されます(javascriptで記述されたアプリケーションが含まれています-ExtJS) 。ブラウザの現在のタブ(ログインフォームページ)が閉じます。

私の意見では、これは優れたアプローチです。これExtJSは、単一ページのアプリケーションパターンであり、AJAX目に見えるリダイレクトなしで完全に実行するのに十分強力だからです。さらに、ポップアップシナリオでは、ブラウザのページコントロールボタン(戻る、進む、更新)がなくなり、アドレスバーは読み取り専用になります。

現在、メインアプリケーションとしてのExtJSの中で、サーバー側のスクリプト言語としてASP.NETの助けを借りて、これを再現しようとしています。したがって、結果は次のようになります。

  1. ログインフォーム付きのログインページ-HTML5+CSS3
  2. アプリケーションページ(ポップアップウィンドウ)-純粋にExtJS
  3. Webサービス-ServiceStack

Webサービスは、ログイン目的のメソッドと他のメソッドを公開し、常にJSON応答を返します。ポップアップを開いてウィンドウを閉じる前に、セッション変数を設定する必要があります(ログインが成功した場合)。

そして、ここに質問があります:

ログインが成功した場合、ポップアップを開いて現在のウィンドウ/タブを閉じるというこのシナリオをどのように実行できますか?どんな助け、ヒント、参照、アドバイス、批評も完全に私が期待しているものです。

ありがとうございました!

4

2 に答える 2

1

別のウィンドウを開いた後、現在のウィンドウを閉じることができるはずです。

window.open('new window url'); window.close();

ボックスでこれを試してみましたが、クロムとサファリでうまく機能します

<input type="button" onClick="window.open('popop.html'); window.close();" value="open" />
于 2012-08-14T09:04:44.283 に答える
0

本当に必要がない場合は、ポップアップを開かないでください。最新のブラウザはすべて、デフォルトでポップアップ ウィンドウが開かないように設定されています。

私の知る限り、(ターゲット属性を使用して) 新しいウィンドウを開く 100% のシナリオは、ユーザーがクリックしたハイパーリンクだけです。特定のブラウザによってブロックされること
window.open()さえあります。document.getElementById("hiddenLink").click()

そうすることの本当のポジティブさはありますか、それともそのサイトの誤った目新しさにすぎませんか? あなたが述べた理由はすべて、1つのウィンドウのシナリオで十分です。

于 2012-08-14T12:06:55.123 に答える