GWT:后退按钮工作两次,通过浏览器和我的GWT代码
情景: 在我的GWT webapp中,我使用GWT:后退按钮工作两次,通过浏览器和我的GWT代码,gwt,keyboard-events,backspace,Gwt,Keyboard Events,Backspace,情景: 在我的GWT webapp中,我使用KeyDownHandler捕获用户点击退格的事件。 比如说,我在小部件“B”上使用它,当小部件“B”聚焦时点击backpsace应该会将我带到小部件“A” 问题是: 点击backspace,我被带到小部件“A”,但只是在浏览器将我带回到上一页之前的一瞬间!我希望我的退格事件仅由我的(GWT)代码使用,而不是由浏览器使用 final TextBox txtA = new TextBox(); TextBox txtB = new TextBox
KeyDownHandler
捕获用户点击退格的事件。
比如说,我在小部件“B”上使用它,当小部件“B”聚焦时点击backpsace应该会将我带到小部件“A”
问题是:
点击backspace,我被带到小部件“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);
这可能对你有用。不过,最好使用shift+tab在基于web的表单IMHO中向后导航。您可能不得不避免这种情况发生。您可能需要为一些或所有关键事件(在Firefox中为keydown、keypress、keypup)执行此操作;确保测试尽可能多的浏览器
也就是说,劫持全球键盘快捷键被我的许多用户视为过于侵入;这可能会对应用程序的可访问性产生影响