小编典典

setAttribute,onClick和跨浏览器的兼容性

ajax

我已经阅读了许多关于此的文章,但没有一个有任何明确的答案。这是我的代码:

// 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之间保持一致。

-尼古拉斯


阅读 346

收藏
2020-07-26

共1个答案

小编典典

我通常使用类似:

onew.onclick = new Function("fnDisplay_Computers('" + alines[i] + "')");

这在IE和Firefox中均应适用。

2020-07-26