【问题标题】:How to override ctrl-f in safari如何在 Safari 中覆盖 ctrl-f
【发布时间】:2012-11-24 10:21:54
【问题描述】:

有没有办法通过将浏览器查找器上的焦点更改为我自己的文本框来覆盖 Safari 浏览器中 CTRL+F 的行为?以下 GWT sn-p 代码:

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 提示吗?

【问题讨论】:

    标签: javascript gwt safari


    【解决方案1】:

    我认为这个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;
            }
        }
    }
    

    【讨论】:

      【解决方案2】:

      如果你想用 javascript 解决它:

      添加事件监听器

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

      如果您想稍后删除它:

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

      事件函数:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-01-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多