2011-11-28 71 views
0

我已经在Chrome中正常运行以下声明JS/Dojo代码:事件在Firefox中未定义dojo.connect onkeypress事件

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

http://jsfiddle.net/pfSXF/

输入一些字符转换成TextBox我得到一些KeyboardEvents在控制台输出。

完全相同的代码不能在Firefox中运行。我得到的控制台输出以下错误:

event is not defined 

撷取来自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/

什么绝招?

回答

0

声明性代码道场防止火狐从传递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/