情景工作两次:GWT:后退按钮,都是由浏览器和我的GWT代码
在我的GWT的webapp,我使用KeyDownHandler
捕获用户点击Backspace的事件。 说,我正在使用它的小部件“B”,并击中小部件'B'的重点应该把我带到小部件'A'。
问题:
在击中退格,我转到了小部件“A”,但只一会儿浏览器把我带回到以前的页面之前!我希望我的退格事件仅用于我的(GWT)代码,而不是浏览器。
情景工作两次:GWT:后退按钮,都是由浏览器和我的GWT代码
在我的GWT的webapp,我使用KeyDownHandler
捕获用户点击Backspace的事件。 说,我正在使用它的小部件“B”,并击中小部件'B'的重点应该把我带到小部件'A'。
问题:
在击中退格,我转到了小部件“A”,但只一会儿浏览器把我带回到以前的页面之前!我希望我的退格事件仅用于我的(GWT)代码,而不是浏览器。
final TextBox txtA = new TextBox();
TextBox txtB = new TextBox();
VerticalPanel testPanel = new VerticalPanel();
testPanel.add(txtA);
testPanel.add(txtB);
txtB.addKeyDownHandler(new KeyDownHandler() {
public void onKeyDown(KeyDownEvent event) {
if(event.getNativeKeyCode() == KeyCodes.KEY_BACKSPACE){
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
public void execute() {
txtA.setFocus(true);
}
});
}
}
});
RootPanel.get().add(testPanel);
这个SO post可能对你有用。然而,它仍然更好地使用Shift +标签向后导航到一个基于Web的形式恕我直言。
您可能需要prevent the default action发生。您可能必须为部分或全部关键事件(keydown,keypress -in Firefox-,keyup)执行此操作。一定要测试尽可能多的浏览器!
这就是说,劫持全球键盘快捷键被看到我的许多用户太侵入;它可能会影响您的应用的可访问性。