我为我的应用程序的外部客户端创建了一个 jsp,用于链接到 Web 客户端。他们可以在 URL 中指定他们所在的客户端,以便当链接打开一个窗口时,它被命名,并且来自该客户端的任何其他链接都将在同一窗口中打开。这是一个示例网址:
mysite.com/redirect.jsp?fromClient=mine&page=awesome
问题是当您单击此链接时,例如从电子邮件摘要中,它会打开redirect.jsp
用于window.open()
打开所需页面的页面。从上面的链接,将打开的页面是:
mysite.com/index.jsp?page=awesome
所以我打开了两页,实际上我只想要一个。而且由于我没有使用 javascript 打开第一页(它是一个链接),我不能用window.close()
它来关闭它。我尝试过使用window.open('','_parent','')
,window.open('','_self','')
但都不起作用。
我知道必须有比从我的 jsp 页面打开第二个窗口更好的重定向方法,但我不知道更好的方法是什么。想法?
编辑
主要目标是让外部客户端的用户能够单击该客户端中的链接,并让所有链接将它们带到浏览器中的同一窗口/选项卡。我现在正在使用window.open
,因为我可以解析链接并获取客户端名称,然后在window.open
函数中提供它。
编辑 2
我总是在这些问题上过于含糊。好的,这是设置:
电子邮件摘要包含一个看起来像的链接
mysite.com/redirect.jsp?fromClient=emailDigest&pageNum=4
目前,当点击该链接时,它会打开一个浏览器(duh),然后redirect.jsp
页面解析该链接以获取客户端名称,在本例中为 emailDigest。然后它调用window.open('mysite.com/index.jsp?pageNum=4','emailDigest')
. 这将创建一个具有该名称的新窗口,emailDigest
除非具有该名称的窗口/选项卡已经存在,在这种情况下,它只会使用新窗口更新该窗口中的 URL。
我希望要么能够关闭原始窗口(带有redirect.jsp
地址的窗口),要么根本不必打开那个初始窗口。
注意
由于有许多不同的客户端希望能够做到这一点,我不能保证他们将使用 HTML 创建链接,因此target
属性不是答案。