IE下HTML标记的click方法的标准化(兼容化)
昨天修改一个网站使其能在Chrome下正常显示,其中很多要改的是Javascript的代码。修改的过程中才充分意识到IE提供了太多的非标准的功能调用了,最严重的就是.click()方法了。
在一个功能里要程序能自动点击一些链接,原先的设计是找到a元素,然后执行元素的.click()方法,这个方法在Chrome下不能执行,而且也找不到标准的相对应的方法。试图从jQuery的源码里找到它的click()方法的实现,但是代码太复杂看不懂。
在Google上搜索了好多条目后,终于在一个网页(最原始的出处已经无从分辨了,只好贴第一个找到的)里找到了解决方案:
if(document.all)
{
document.getElementById(name).click();
}
else
{
var evt = document.createEvent(”MouseEvents”);
evt.initEvent(”click”, true, true);
document.getElementById(name).dispatchEvent(evt);
}
有用的就是else下面那三行哈,相信以后还会经常用到,先记到这里。
