某些键不适用于Dojo小部件

q35jwt9p  于 2022-12-16  发布在  Dojo
关注(0)|答案(1)|浏览(175)

我试着跟随the widget example by mindtrove's blog。这是the example demo page
此Widget有一些问题:左右箭头键和Home键和End键在Firefox中不起作用(我使用的是Mac),如果我在Safari中加载示例页面,所有键都不起作用。我不确定这是Mac的问题还是根本不起作用。
下面是小部件Rating.js中的一些代码:

_onKeyDown: function(event) {
    switch(event.keyCode) {
    case dojo.keys.UP_ARROW:
    case dojo.keys.RIGHT_ARROW:
        this.currentValue += 1
        this.currentValue = Math.min(this.currentValue, this.maximumValue);
        dojo.stopEvent(event);
        break;
    case dojo.keys.DOWN_ARROW:
    case dojo.keys.LEFT_ARROW:
        this.currentValue -= 1
        this.currentValue = Math.max(this.currentValue, this.minimumValue);
        dojo.stopEvent(event);
        break;
    case dojo.keys.HOME:
        this.currentValue = this.minimumValue;
        dojo.stopEvent(event);
        break;
    case dojo.keys.END:
        this.currentValue = this.maximumValue;
        dojo.stopEvent(event);
        break;
    }
    // refresh the display
    this._update();
}

据我所知,这个函数事件中所有的键都应该工作。我不知道为什么有些键不工作。顺便说一句,我发现了一件有趣的事情:对于Firefox中的那些键(左,右,Home & End),如果我按住Shift键,它们就能工作。
我不确定这个问题是小部件代码中的bug还是Mac中Dojo的bug?

oknwwptz

oknwwptz1#

事实上,我发现所有的键都能在Firefox(Mac)中工作。我正在使用Vimperator标记一些键。当我进入“传递”模式时,这意味着没有键被Vimerator插件捕获,聚焦的评级控件将获得左、右、上、下、主页和结束的键事件。
至少在Firefox的情况下,小部件是工作的,从我的经验来看,小部件在控件被聚焦时为它提供了一些事件函数,然而,如果有任何插件或浏览器配置导致事件不能通过或它们对事件做出响应,那么你就会得到“问题”,换句话说,如果它真的很复杂,在浏览器的情况下。我可以想象,如果一些插件可以禁用鼠标点击事件,小部件将无法工作了。
我还是没办法让这个小部件在我的Safari中工作。从我看到的情况来看,这个小部件控件根本没有获得任何焦点。这个小部件在测试页面中被分配给了一个span标签。我不确定span标签是否能在Safari中获得焦点。我会看看我是否能让这个小部件到另一个可获得焦点的标签,然后试试看。
让一些东西发挥作用和探索是非常值得的。

相关问题