2009-11-05 40 views
0

所有瀏覽到這個特定的網站應該發生在它登錄的實例中。如果在新選項卡或新窗口中打開它,則不應允許並排瀏覽。換句話說,如果我已經瀏覽(並已登錄),並決定打開一個新的標籤頁/窗口來瀏覽同一個網站,我的服務器應該對此進行陷阱並報告友好的消息。不使用新標籤頁/窗口管理單個瀏覽器實例的策略?

這可能嗎?我也想知道這個需求的跨平臺可行性。

回答

0

當IE7出現時,由於會話在IE6的標籤實例中傳輸的方式發生變化,我們在內部系統上實現了一個真正的快速和骯髒。

這是ASP並使用Session和Javascript的組合,但可以輕鬆移植到ASP.NET。直到我們將其替換爲註冊表黑客來更改IE TAB行爲後,才爲我們工作。

如果這是一個開放系統,它可能不是好事,除非你很高興需要JavaScript,但猜測它可能以某種方式幫助你。

<script language="JavaScript"> 
<%if session("window") = "" Then%> 
window.name = "LOCKwindow"; 
<%session("window") = "set"%> 
<%else%> 
if (window.name != 'LOCKwindow') { 
    document.write('<h1>Sorry just one tab allowed</h1>'); 
    } 
<%end if%> 
</script> 
+0

如果我瀏覽到同一網站內的其他頁面,這將有何幫助...? – deostroll 2009-11-05 16:56:14

+0

會話var(「window」)被設置爲「set」,所以當這段代碼在其他頁面上執行時,它將進入else並確認window.name仍然設置爲'LOCKwindow',它將作爲window.name不會爲該窗口設置一次,或者至少在運行正常的瀏覽器配置中運行。 – Chris 2009-11-05 20:32:48

相關問題