1

Mindtroveさんのブログのウィジェット例を追ってみました。デモ ページの例を次に示します。

このウィジェットにはいくつかの問題があります: Firefox (私は Mac を使用しています) では左矢印キーと右矢印キー、ホーム キーと終了キーが機能しません。また、サンプル ページを Safari にロードすると、どのキーも機能しません。これが私の Mac だけの問題なのか、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();
}

私が見る限り、この関数イベントで咳をするすべてのキーが機能するはずです。一部が機能していない理由はわかりません。ところで、興味深いことが 1 つあります。Firefox のこれらのキー (左、右、ホーム、および終了) キーは、Shift キーを押したままにすると機能します。

問題がウィジェットのコードのバグなのか、Mac の場合は Dojo のバグなのか、よくわかりません。

4

1 に答える 1

0

実際、Firefox(Mac)ではすべてのキーが機能していることがわかりました。Vimperator を使用していくつかのキーをマークアップしています。「パススルー」モードで取得すると、Vimerator アドオンによってキーがトラップされないことを意味し、フォーカスされた評価コントロール ウィジェットは、左、右、上、下、ホーム、およびエンドのキー イベントを取得します。

少なくとも Firefox の場合、ウィジェットは機能しています。私の経験から、ウィジェットは、コントロールがフォーカスされているときに、コントロールにいくつかのイベント関数を提供します。ただし、イベントが通過しない、またはイベントに応答するアドオンまたはブラウザー構成がある場合は、「問題」が発生します。つまり、ブラウザの場合は本当に複雑です。いくつかのアドオンがマウス クリック イベントを無効にできる場合、ウィジェットが機能しなくなることが想像できます。

それでも、ウィジェットを Safari で動作させる方法がわかりませんでした。私が見る限り、ウィジェット コントロールはまったくフォーカスされていません。ウィジェットは、テスト ページのスパン タグに割り当てられます。span タグが Safari でフォーカスされるかどうかはわかりません。ウィジェットを別のフォーカス可能なタグに取得できるかどうかを確認して、試してみます。

何かを機能させ、探求することは本当にやりがいがあります。

于 2008-11-22T17:02:28.010 に答える