0

我在 Chrome 中正确运行了以下声明性 js/dojo 代码:

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

( http://jsfiddle.net/pfSXF/ )

在控制台输出中输入一些字符TextBoxKeyboardEvents

完全相同的代码不会在 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

声明式 dojo 代码阻止 Firefox 将event对象传递给连接的函数 - 必须通过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 回答