遭遇IE8下的JavaScript兼容问题

博客园闪存分页是用JavaScript生成的,今天发现在IE8下点击页码不能翻页,翻页操作是在当前页码的onclick事件中进行的。

开始代码是这么写的:

var a = document.createElement("a");
a.setAttribute("onclick", this.ClickFunctionName + "(" + pageIndex + ");Pager.SetCurrent(" + pageIndex + ");");

由于IE8不支持setAttribute方法,这里添加的onclick事件处理程序并未添加上。

后来改为jQuery的attr方法:

$(a).attr("onclick", this.ClickFunctionName + "(" + pageIndex + ");Pager.SetCurrent(" + pageIndex + ");");

这样虽然添加上去了,但不管怎么点击,onclick事件处理程序就是不执行,Chrome与Firefox都没这个问题。

最终通过下面的代码解决了问题:

var js = this.ClickFunctionName + "(" + pageIndex + ");Pager.SetCurrent(" + pageIndex + ");";
a.onclick = function() { eval(js); }
标签: JavaScript
posted @ 2011-12-14 16:40 dudu 阅读(523) 评论(3) 编辑 收藏

 回复 引用 查看   
#1楼 2011-12-15 11:38 就是书生      
已收藏
 回复 引用 查看   
#2楼 2011-12-17 11:32 花肚皮      
jQuery这个样子:
$(a).click(function(){

});

 回复 引用 查看   
#3楼 2012-01-25 20:58 狄烁STEC      
貌似ie8需要直接塞个函数,可以这样写:
a.setAttribute("onclick", function(){alert(this.innerHTML)});
另外jQuery有事件专用函数$(a).click(function(){});
jQuery1.7版之后推荐$(a).on('click',function(){});