0

按我的知識,我們可以用下面的JavaScript代碼禁用新窗口Ctrl + N鍵:如何在瀏覽器窗口中限制Ctrl N組合?

document.onkeydown = function() { 
    alert(event.keyCode) 
    if ((event.keyCode == 78) && (event.ctrlKey)) { 
     alert ("No new window") 
     event.cancelBubble = true; 
     event.returnValue = false; 
     event.keyCode = false; return false; 
    } 
} 

在我的情況下,有3幅與他們的一個固定(菜單欄在那裏我可以把這個代碼),但如果焦點位於其他框架中,則不會捕獲此事件。我怎樣才能在瀏覽器窗口上全局實現這個限制?

回答

1

我不認爲你被允許從網頁控制這樣的瀏覽器(也不應該是)

2

你必須包含每個文件(幀)的腳本。如果所有框架都從同一個域中拉出,則應該可以使用集合中的單個輸入點執行此操作,並逐個處理每個框架的文檔對象。

您的腳本也只適用於IE。

這也是一個可怕的想法。你不應該接管人們的瀏覽器功能。

+0

感謝您的評論,但我需要這樣做,因爲服務器端代碼(需要一些時間來修復和釋放)使用會話變量,這些變量在兩個瀏覽器窗口中與同一會話共享。你能分享一小段代碼來處理所有幀的一般情況嗎? – Tushu 2010-07-08 13:33:56

0

儘管諸如此類的擔憂往往是合法的,但試圖做某些事情(例如阻止關鍵連擊或right-click)實際上對您的網站不利。考慮這個:

用戶期望他們的瀏覽器以某種方式工作。當您篡改此功能時,用戶可能會感到沮喪。他們可能會認爲您的網站已損壞,請離開。

當您嘗試阻止用戶執行內置操作時,您基本上是在監視其行爲。這傳遞給用戶,你不相信他們使用你的網站,除非在你的監督下。用戶會感到受到侮辱,並離開。

如果用戶禁用JavaScript,會發生什麼情況?或者,如果他們有一個自定義規則集,可以防止網站改變瀏覽器的行爲?

有什麼不好打開一個新窗口?如果這是一個安全問題,那麼應該妥善解決。如果用戶有這些想法,他們可能感到不安全,並離開。

在啓動一個網站之前,必須考慮這些(其他許多)事情。希望這可以幫助你在你的項目上工作。

+0

感謝您的評論,但我需要這樣做,因爲服務器端代碼(需要一段時間才能修復和釋放)使用會話變量,在兩個瀏覽器窗口中使用同一會話共享。你能分享一小段代碼來處理所有幀的一般情況嗎? – Tushu 2010-07-08 14:30:43

2

將您的代碼放在常見的.js(javascript)文件中,並將該.js與所有頁面鏈接。 如果您想要刪除功能或添加任何集中功能,這將有所幫助。

相關問題