Web クライアントへのリンクに使用するアプリケーションの外部クライアント用の jsp を作成しました。リンクがウィンドウを開くときに名前が付けられ、そのクライアントからの他のリンクが同じウィンドウで開くように、URL で自分がどのクライアントであるかを指定できます。URL の例を次に示します。
mysite.com/redirect.jsp?fromClient=mine&page=awesome
問題は、たとえばメール ダイジェストからこのリンクをクリックすると、目的のページを開くためredirect.jsp
に使用window.open()
するページが開くことです。上記のリンクから、開くページは次のようになります。
mysite.com/index.jsp?page=awesome
そのため、実際には 1 つだけが必要な場合でも、2 つのページを開いています。また、最初のページ (リンク) を開くために JavaScript を使用していないためwindow.close()
、それを閉じることはできません。window.open('','_parent','')
andを使用して回避しようとしましwindow.open('','_self','')
たが、どちらも機能しません。
jsp ページから 2 番目のウィンドウを開くよりも優れたリダイレクト方法が必要であることはわかっていますが、その優れた方法が何であるかはわかりません。考え?
編集
主な目標は、外部クライアントのユーザーがそのクライアントのリンクをクリックして、すべてのリンクからブラウザーの同じウィンドウ/タブに移動できるようにすることです。window.open
リンクを解析してクライアント名を取得し、それを関数で提供できるため、現在使用していwindow.open
ます。
EDIT 2
これらの質問では、私はいつも漠然としすぎてしまいます。OK、セットアップは次のとおりです。
電子メール ダイジェストには、次のようなリンクが含まれています。
mysite.com/redirect.jsp?fromClient=emailDigest&pageNum=4
現在、そのリンクがクリックされると、ブラウザーが開き (当然)、redirect.jsp
ページはそのリンクを解析してクライアント名 (この場合はemailDigest ) を取得します。次に、 を呼び出しますwindow.open('mysite.com/index.jsp?pageNum=4','emailDigest')
。これにより、その名前emailDigest
のウィンドウ/タブが既に存在しない限り、その名前で新しいウィンドウが作成されます。その場合、そのウィンドウの URL が新しいウィンドウで更新されるだけです。
元のウィンドウ(アドレスのあるウィンドウ)を閉じることができるようにするか、redirect.jsp
その最初のウィンドウをまったく開く必要がないようにしたい。
注
: これを実行できるようにしたいと考えているさまざまなクライアントが多数いるため、HTML を使用してリンクを作成することを保証できないため、target
属性は答えではありません。