0

次の宣言型js/dojoコードがChromeで正しく実行されています。

<div dojoType="dijit.form.TextBox">
    <script type="dojo/connect" event="onKeyPress">
        console.log(event);
    </script>
</div>

http://jsfiddle.net/pfSXF/

いくつかの文字を入力すると、コンソール出力TextBoxにいくつか表示されます。KeyboardEvents

まったく同じコードはFirefoxでは実行されません。コンソール出力で次のエラーが発生します。

イベントが定義されていません

からのオブジェクトのフェッチもwindow機能しません(同じエラー出力):

<div dojoType="dijit.form.TextBox">
    <script type="dojo/connect" event="onKeyPress">
        if(!event) {
            event = window.event;
        }

        console.log(event);
    </script>
</div>

http://jsfiddle.net/pfSXF/1/

トリックは何ですか?

4

1 に答える 1

0

event宣言型のdojoコードは、Firefoxがオブジェクトを接続された関数に渡すのを防ぎargsます。属性を介して手動で行う必要があります。

<div dojoType="dijit.form.TextBox">
    <script type="dojo/connect" event="onKeyPress" args="event">
        console.log(event);
    </script>
</div>

http://jsfiddle.net/pfSXF/2/

于 2011-11-29T15:27:49.597 に答える