我已经阅读了许多关于此的文章,但没有一个有任何明确的答案。这是我的代码:
// button creation onew = document.createElement('input'); onew.setAttribute("type", "button"); onew.setAttribute("value", "hosts"); onew.onclick = function(){fnDisplay_Computers("'" + alines[i] + "'"); }; // ie onew.setAttribute("onclick", "fnDisplay_Computers('" + alines[i] + "')"); // mozilla odiv.appendChild(onew);
现在,setAttribute()方法(带有mozilla注释)在mozilla中可以正常工作,但前提是该方法位于其上方的行之后。因此,换句话说,它似乎默认为最后设置的那个。.onclick方法(带有ie注释)在两种情况下均不起作用,我使用不正确吗?
无论哪种方式,我都找不到在IE中完全实现此功能的方式,更不用说两者了。我确实使用.onclick方法时更改了函数调用,并且仅通过简单调用警报函数就可以很好地工作,这就是为什么我认为我的语法不正确的原因。
长话短说,我无法使onclick参数在IE / Mozilla之间保持一致。
-尼古拉斯
我通常使用类似:
onew.onclick = new Function("fnDisplay_Computers('" + alines[i] + "')");
这在IE和Firefox中均应适用。