Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何打开新的web浏览器,而不是单击链接弹出窗口,该链接将http会话与父窗口分离_Java_Javascript_Session_Web Applications - Fatal编程技术网

Java 如何打开新的web浏览器,而不是单击链接弹出窗口,该链接将http会话与父窗口分离

Java 如何打开新的web浏览器,而不是单击链接弹出窗口,该链接将http会话与父窗口分离,java,javascript,session,web-applications,Java,Javascript,Session,Web Applications,我有一个父窗口,并提供了一个链接。现在,我使用下面的代码片段打开一个弹出窗口 self.open(pageLoc,'ServicePopUp','height=600,width=800,resizable=yes,scrollbars=yes,toolbar=yes,menubar=yes,location=yes'); 但我想在点击链接时打开一个全新的浏览器(就像我们在点击IE时打开一个新的webbrowser实例),而不是一个弹出窗口,这样新浏览器就可以将会话从父窗口中分离出来。 我该

我有一个父窗口,并提供了一个链接。现在,我使用下面的代码片段打开一个弹出窗口

self.open(pageLoc,'ServicePopUp','height=600,width=800,resizable=yes,scrollbars=yes,toolbar=yes,menubar=yes,location=yes'); 
但我想在点击链接时打开一个全新的浏览器(就像我们在点击IE时打开一个新的webbrowser实例),而不是一个弹出窗口,这样新浏览器就可以将会话从父窗口中分离出来。
我该怎么做呢?

这是不可能的。问题是:为什么希望新窗口不保留有关上一个会话的信息?

这是不可能的。问题是:为什么您希望新窗口不保留有关上一个会话的信息?

简而言之,您不能

会话由浏览器范围的cookie标识——父窗口可用的任何会话都将可用于子窗口

有两种方法可以做到这一点,一种是“好的”方法,另一种是“简单但可能更容易的”方法


好方法:

对站点进行编码,使其能够模拟这种多会话行为。可能在url中有一个特殊参数,将其标识为新的会话窗口,然后有一个单独的数据块,作为这些窗口的会话处理

老套的方式


设置通配符dns,使您站点的任何子域显示相同的内容(即www.yoursite.com==aoeu.yoursite.com==qjkx.yoursite.com等),然后在随机生成的子域打开弹出窗口。确保主站点的cookie指定它们仅适用于www.yoursite.com,然后访问子域站点将无法访问会话信息

简而言之,您不能

会话由浏览器范围的cookie标识——父窗口可用的任何会话都将可用于子窗口

有两种方法可以做到这一点,一种是“好的”方法,另一种是“简单但可能更容易的”方法


好方法:

对站点进行编码,使其能够模拟这种多会话行为。可能在url中有一个特殊参数,将其标识为新的会话窗口,然后有一个单独的数据块,作为这些窗口的会话处理

老套的方式


设置通配符dns,使您站点的任何子域显示相同的内容(即www.yoursite.com==aoeu.yoursite.com==qjkx.yoursite.com等),然后在随机生成的子域打开弹出窗口。确保主站点的Cookie仅适用于www.yoursite.com,然后访问子域的站点将无法访问会话信息

当您打开新窗口时,将返回对新窗口的引用,以便您可以使用该引用访问新窗口,并在保存对变量的引用时在其上执行javascript cookie创建。

当您打开新窗口时返回对新窗口的引用,因此如果将引用保存到变量,您可以使用该引用访问新窗口并在其上执行javascript cookie创建。

实际上,由于我的某些要求,我想使用新窗口附加不同的会话。现在发生的是有两个链接l1和l1l2打开两个独立的浏览器窗口W1和W2。现在,我在W1会话中设置的内容在W2会话中也可见。这就是为什么我想将单独的会话附加到两个窗口。实际上,我想将不同的会话附加到新窗口,因为我有一些要求。现在发生的是有两个链接l1和l2,它们打开两个单独的浏览器窗口W1和W2。现在,我在W1会话中设置的内容在W2会话中也可见。这就是为什么我想将单独的会话附加到两个窗口。感谢Mala的回复。但我如何确保我的主站点cookie指定它们只适用于www.yoursite.com。我的意思是,我需要为此更改哪些内容?您需要使用cookie的“域”属性。如何设置取决于您使用的语言。如果是Javascript,请参阅。如果是PHP,请参阅感谢Mala提供的如此好的回复。但我如何确保我的主站点cookie指定它们只适用于www.yoursite.com。我的意思是,我需要为此更改哪些内容?您需要使用cookie的“域”属性。如何设置取决于您使用的语言。如果是Javascript,请参阅。如果是PHP,请参阅