有没有办法通过改变浏览器查找器上的焦点来专注于我自己的文本框来覆盖Safari浏览器中CTRL F的行为?以下GWT代码段:
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提示?
解决方法
我认为这
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.html,http://labs.neohapsis.com/2012/11/14/browser-event-hijacking/
可以在here和there找到演示.在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; } } }