【问题标题】:How to check whether an application is open in browser session?如何检查应用程序是否在浏览器会话中打开?
【发布时间】:2011-12-14 04:16:10
【问题描述】:

我有两个独立的网络应用程序。如果我在其中一个(比如应用程序 A),我应该点击一个链接或按钮(在 A 的第 1 页上)转到另一个应用程序的页面(B 的第 1 页)。如果应用 B 在浏览器窗口中打开,我应该去它。不应打开新窗口。如果应用 B 不在浏览器会话中,我应该得到一个新窗口。所有这些都需要在客户端。

【问题讨论】:

    标签: asp.net session browser window


    【解决方案1】:

    如果您使用链接,请使用target 属性。如果您使用 JavaScript,请使用 window.open 的第二个参数。在这两种情况下,它们都会命名一个窗口 - 只会打开一个同名的窗口。

    【讨论】:

    • 谢谢..但是我需要检查目标站点是否已经在浏览器中打开..如果是我不需要打开新窗口而只需使用打开的窗口...所以我的问题只是检查浏览器会话中是否打开了站点(或页面)。谢谢。
    • 如果您已经打开了一个同名窗口,它将不会打开一个新窗口。但是,它可能会重新加载内容(不确定如果你给它相同的 URL 会发生什么,或者只是散列不同的 URL - 需要测试)。如果您不想使用它,那么除非您需要实现postMessage 的较新浏览器之一,否则您不能这样做。
    【解决方案2】:

    尝试使用会话变量,并在应用程序 A 加载时在 page_load 事件中键入: 会话["App"]="A"; 并在每个链接按钮单击事件上检查 session["App"].string() 是否有 if esle 将其重定向到 B 并且如果其 B 不重定向它。

    【讨论】:

    • 谢谢.. 但是我怎样才能在浏览器中获取当前打开页面的 url?
    • 可以使用 javascript 作为 document.write(location.herf);
    • ok.. 但我想获取所有打开的选项卡/窗口的 uri。对于当前窗口,它很好。
    • 您可以使用 cookie 并使用 resquest.rawurl 方法存储每个打开的页面地址,它会为您提供当前页面的原始 url,然后您会一一检查会话并获取数据。
    猜你喜欢
    • 2023-03-14
    • 2020-08-10
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 2012-01-01
    • 2013-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多