【问题标题】:Internet Explorer 8+ - New Session per tabInternet Explorer 8+ - 每个选项卡的新会话
【发布时间】:2014-02-06 20:14:05
【问题描述】:

很明显,IE8 对每个标签的新会话有限制。按照设计,IE8+ 不允许每个选项卡自动创建新会话。我理解为什么会这样设计,但我认为微软的 IE 团队忽略了用户/会话的所有情况。

有一个 IE8 菜单选项“文件 -> 新会话”,它创建了我需要的功能。

很遗憾,我的用户无法接受培训以使用“文件 -> 新会话”。我必须尝试以编程方式在代码中完成此操作。

我的问题是......“文件 -> 新会话”在幕后做什么?我需要复制这个菜单功能,但找不到任何关于如何做到这一点的好例子,而无需重新发明轮子。显然 IE8 可以轻松地创建新会话(每个选项卡),但是代码中如何?

我不想更改 web.config 或将 GUID 放在我的查询字符串中,因为这对我们的用户来说是不可接受的,所以请不要建议这样做。

感谢任何帮助。

** 编辑:我的场景是我们的用户登录到我们的网络系统,进行一些编辑,然后打开一个新选项卡以其他用户身份登录。新登录用户从前一个用户接收会话数据。我想避免在选项卡之间共享会话数据。如果用户使用“文件-> 新会话”它可以工作,但我们不能依赖它。我想编写代码以在我们的应用中复制该菜单功能。

【问题讨论】:

  • 否决 leditimate 问题真的很蹩脚。您如何期望新用户获得足够的积分来投票?

标签: asp.net .net internet-explorer session tabs


【解决方案1】:

所有选项卡中的 ASP.NET 会话都相同,因为使用的是 HTTP Cookie。为所有浏览器选项卡共享的 Cookie。如果您不喜欢带有 URL 参数的无 cookie 会话,您可以使用 ajax-calls 并查找 JavaScript window.name 属性。它的属性对于所有选项卡(窗口)都是唯一的,您可以设置自己的值。

这种方法的示例: Javascript session-variables without cookies

【讨论】:

  • 不,因为 IE 进程线程,它是同一个会话。我想看看代码示例。具体来说,菜单中的“文件 -> 新会话”是如何工作的。
  • 你做一个 ASP.NET 网站或一些 IE 扩展?
  • 这是一个ASP.NET网站,用户使用IE8。由于 IE 的进程线程,会话在选项卡之间共享。它在网络上有很好的记录。我的目标是复制菜单选项“文件 - > 新会话”,而不需要任何 javascript 或花哨的 hack。
【解决方案2】:

通常这是一个肮脏的黑客,但可以在你的情况下工作。

<script language="javascript">
var a = external.menuArguments;
if(a && (a = a.event) && (a = a.srcElement) && (a = a.href))
{
var shell = new ActiveXObject("WScript.Shell");
shell.run("\"C:\\Program Files\\Internet Explorer\\iexplore\" -nomerge \"" + a + "\"");
}
</script>

http://waissguy.wordpress.com/2009/07/07/how-to-open-a-link-in-a-new-session-with-ie8/

【讨论】:

  • 用户没有以编程方式打开标签。他们通过 IE 菜单打开新标签。这行不通。我需要在创建选项卡时创建新会话的代码。不是调用浏览器的 Shell 代码。我需要在我的登录例程中放置“新会话”代码。
  • 我想看代码示例。具体来说,菜单中的“文件 -> 新会话”是如何工作的。
猜你喜欢
  • 1970-01-01
  • 2016-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-16
  • 1970-01-01
  • 1970-01-01
  • 2013-06-21
相关资源
最近更新 更多