js中click事件 在ie下可以运行,但在火狐、 谷歌下就没有反应了?这是为什么,请有识者指教

<script language="javascript" type="text/javascript">
function a(ev)
{
var currKey=0,e=e||event;
currKey=e.keyCode||e.which||e.charCode;
var sumbut = document.getElementById("midimg");
if (currKey == 13)
{
if(document.all)
{
sumbut.click();
}
else
{
var evt = document.createEvent("MouseEvents");
evt.initEvent("click",true,true);
sumbut.dispatchEvent(evt);
}
}
}
document.onkeydown=function(ev)
{
a(ev);
}
</script>
页面使用:
<a id="midimg" onclick="a(ev)" href="#" >hello</a>

FireFox与IE 下js兼容触发click事件的代码

<a href="#" id="a3" onclick="test()" style="display:none"></a>
<input type="button" value="clck" onclick="test2('a3');"/>
<script language="javascript">
function test()
{
document.location.href = "DBAI_les20_globalization_support.ppt";
}
function test2(name)
{
if(document.all)
{
document.getElementById(name).click();
}
else
{
var evt = document.createEvent("MouseEvents");
evt.initEvent("click", true, true);
document.getElementById(name).dispatchEvent(evt);
}
}
</script>追问

谢谢你的回答,但不是我想要的。现在我已经解决了。核心代码: location.href=$("#midimg").attr("href");

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-07-02
  您好!很高兴为您答疑。
  currKey=e.keyCode||e.which||e.charCode;
  您的这种事件定义方式在非IE浏览器下无效,其实您要想定位您的问题,只需要开启firefox的firebug,即可看到js运行错误的代码行及相关报错信息,以其为线索即可进行js脚本调试。
  如果对我们的回答存在任何疑问,欢迎继续问询。本回答被网友采纳