2012-12-06 60 views
5

有什麼方法可以通過改變瀏覽器查找器的焦點來關注我自己的文本框來覆蓋Safari瀏覽器中CTRL + F的行爲?以下GWT代碼段:如何在Safari瀏覽器中覆蓋ctrl-f

Event.addNativePreviewHandler(new NativePreviewHandler() { 

    public void onPreviewNativeEvent(NativePreviewEvent event) { 
     switch (event.getTypeInt()) { 
      case Event.ONKEYDOWN: 
       NativeEvent nEvent = event.getNativeEvent(); 
       if (nEvent.getCtrlKey() && nEvent.getKeyCode() == 'F') { 
      focusOnMyTextBox();  
        nEvent.preventDefault(); 
       } 
       break; 
     } 
    } 
} 

允許我在Firefox和Chrome瀏覽器中進行重定向。但是,在Safari瀏覽器查找器獲得焦點。任何GWT或Javascript提示關於此?

回答

3

我覺得這個blogpost是非常相關的:How script kiddies can hijack your browser to steal your password。相關的代碼部分:

$(window).keydown(function(evt){ 
     if((evt.which == "70" && (evt.metaKey || evt.ctrlKey))){ 
      evt.preventDefault(); 
      /* display fake search */ 
     } 
    }); 

更多資源:http://h43z.blogspot.de/2012/11/whats-real-and-whats-not.htmlhttp://labs.neohapsis.com/2012/11/14/browser-event-hijacking/

演示可以發現herethere。在Safari上測試他們兩人,他們確實工作。

由於我不知道很多有關GWT,我不知道這是正確的,但這裏是我的GWT嘗試

Event.addNativePreviewHandler(new NativePreviewHandler() { 

    public void onPreviewNativeEvent(NativePreviewEvent event) { 
     switch (event.getTypeInt()) { 
      case Event.ONKEYDOWN: 
       NativeEvent nEvent = event.getNativeEvent(); 
       if((nEvent.which == "70" && (nEvent.metaKey || nEvent.ctrlKey))){ 
        nEvent.preventDefault(); 
        focusOnMyTextBox(); 
       } 
       break; 
     } 
    } 
} 
0

,如果你想用javascript來解決這個問題:

添加事件偵聽器

document.addEventListener('keydown', onDocumentKeyDown, false); 

,如果你想在以後進行刪除:

document.removeEventListener('keydown', onDocumentKeyDown, false); 

事件功能:

function onDocumentKeyDown(evt) { 

    if(evt.keyCode == "70" && evt.ctrlKey) { 
       ... 
    } 


}