2012-12-06 4 views
5

SafariブラウザのCtrl + Fの動作を、ブラウザファインダのフォーカスを自分のテキストボックスに集中するように変更する方法はありますか?次のGWTスニペットコード:サファリの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について多くを知らないとして、私はこれが正しいかどうかわからないんだけど、ここであなたがJavaScriptでそれを解決したい場合は、私の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

を試してみてくださいです:

追加しますイベントリスナー

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

あなたが後でそれを削除する場合:

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

イベント機能:

function onDocumentKeyDown(evt) { 

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


} 
関連する問題