【问题标题】:IE window.open on second session opens a window with first session idIE window.open 在第二个会话上打开一个带有第一个会话 ID 的窗口
【发布时间】:2012-06-08 01:58:30
【问题描述】:

我有一个 asp.net 应用程序,我需要同时运行两个会话。

我还在一些页面上使用windows.open,这就是我的问题开始的地方。如果我在会话二中的一个页面中使用 JavaScript 调用 windows.open 时正在运行两个会话,则会打开新窗口,其中包含会话一中的会话 ID。

我还应该补充一点,第二个会话是使用下面的代码在不同的 IE 实例中创建的。

var myshell = new ActiveXObject("Shell.Application");

if (parseFloat(ieVersion) >= 8) {
    myshell.ShellExecute("iexplore.exe", "-noframemerging " + url, "", "open", 1);
}
else {
    myshell.ShellExecute("iexplore.exe", url, "", "open", 1);
}

【问题讨论】:

  • 同样的问题可以在这里找到例子pcreview.co.uk/forums/…
  • 你是否控制服务器?我的意思是,如果您可以在网站上更改某些内容,那么您可以在一个会话中进行两个会话,但是如果您无法控制服务器和网站,那将很棘手
  • 是的,我可以访问服务器设置,请告知我是否可以更改设置以同时允许两个会话。
  • 这是 IIS 设置还是 GPO 设置? @Aristos 感谢您的帮助:)
  • @Aristos 你知道我需要在服务器上进行哪些更改才能同时允许两个会话吗?

标签: javascript asp.net internet-explorer sessionid


【解决方案1】:

我知道这是为什么,但我发现了问题......

从 IE 的第二个实例打开的新窗口未正确加载,并在 IE 的第一个实例上重新呈现。

打开窗口的javascript很简单: window.open(the_url, "DisplayWindow", option);

这在 IE 的第一个实例上工作得很好,在一些运行 Windows 7 和 IE 9 的计算机上,它可以在 IE 的第二个实例上打开一个窗口,但对于运行相同设置的其他计算机,这只是不工作!

解决方法就是删除窗口名称。
window.open(the_url, "", option);

我还发现了一个类似的问题,在 IE9 中,如果窗口名称包含空格,窗口将无法打开!因此,如果您遇到类似问题,请尝试更改窗口名称或将其删除。

【讨论】:

    猜你喜欢
    • 2013-05-26
    • 2010-12-02
    • 2012-01-18
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-06
    相关资源
    最近更新 更多