使用Javascript设置oninput事件

Cha*_*l72 12 javascript firefox html5 javascript-events

一些现代浏览器支持HTML5"oninput"事件,包括Firefox 3.X

然而,奇怪的是,它似乎只适用于内联javascript:

<input id = "q" oninput="alert('blah')">
Run Code Online (Sandbox Code Playgroud)

当我尝试使用javascript代码设置它时,它不会触发.

var q = document.getElementById("q");
q.oninput = function(){alert("blah");};
Run Code Online (Sandbox Code Playgroud)

这只是Firefox中的一个错误,还是有这样的原因?

Gra*_*Zhu 17

下载FireFox v3.6.27并进行一些测试和搜索.我发现我之前的回答是错的.

我得到的是:

Firefox版本4支持oninput事件属性.

因此,要在这种情况下添加事件侦听器,您可以执行任一操作

<input id = "q" oninput="alert('blah')">
Run Code Online (Sandbox Code Playgroud)

要么

q.addEventListener('input', function(){alert("blah");}, true);
Run Code Online (Sandbox Code Playgroud)

但我更喜欢后来的方式.您可以在addEventListener中找到原因.
IE attachEvent中也有类似的功能.