2015-11-20 21 views
2

我在我的應用程序中創建了一些快捷方式。如果我打開chrome並直接進入我的網站,而不先打開其他選項卡,則快捷方式按預期工作(關鍵是:ctrl + shift + T)。如果我先打開其他選項卡,然後進入我的網站,則選項卡歷史記錄會填充我訪問的以前的選項卡。因此,我的快捷方式不起作用,而不是打開下拉菜單,它會打開歷史記錄中的選項卡。用JS代碼清除鉻選項卡歷史

爲此搜索解決方案,人們的建議是「關閉瀏覽器並重新打開它,然後選項卡歷史消失」。但這不是我的解決方案。有什麼辦法可以解決這個問題嗎?我曾嘗試添加到我的代碼中:e.preventDefault();

但這不起作用。我的整個代碼如下所示。

document.onkeydown = function(e) { 

var pressedKey = String.fromCharCode(e.which).toUpperCase(); 
array = isoNS.getArr(); //Array containing IDs and shortcuts 

for(var i = 0; i < array.length; i++) { 

var objectKey = array[i].objectKey.toUpperCase(); 

if(e.ctrlKey && e.shiftKey) {  
    e.preventDefault(); 

    if(pressedKey == objectKey) { 
    isoNS.injectKey(array[i].objectContainerId); 
    }  
} 
} 

}

所以我想這就是我想要當用戶按下Ctrl + Shift + T做的,是清除標籤歷史,然後應用Ctrl + Shift + T在我的網站。

Ps。這只是Chrome中的一個問題,而不是其他瀏覽器。

回答

1

關於這個here有一個有趣的討論。本質上;

一定的控制鍵組合已預留只有瀏覽器 使用,不能再通過在網頁中的客戶端的JavaScript 被截獲。

按Ctrl牛逼不幸的是,這些組合中的一個,所以你將不能夠使用JavaScript捕捉到它。

+1

這實在是個不幸的消息。但是,謝謝:-) –