火狐下的两个兼容性问题,请教高手!

yeah86 2010-03-26 12:16:16
第一个问题是:

对一个网页设置组合快捷键,在IE内核浏览器或是谷歌浏览器通过event.ctrlKey就可以捕获Ctrl键,但是在火狐中测试了这一招不行。有人说用e.which等,也不见效。

function clickSearch(e)
{
var currKey=0,e=e||event;
currKey=e.keyCode||e.which||e.charCode;
if(currKey==13)
{
//dosomething
}
}


用这段代码来做Enter键是可以的,也就是按下单键在火狐中也能执行。但是组合键就不可以用“currKey==17&&currKey==51”这样的组合是不行的,而且也不是科学的。要的要求是两个键同时按下才执行的效果。

所以问哪位大虾有没有好的在火狐中兼容组合快捷键的代码!!


第二个问题
就是通过JS来触发一个a标签的点击事件,在网上找到代码:

var comment = document.getElementById("aaa");
if (document.all) {
// For IE
comment.click();
} else if(document.createEvent) {
//FOR DOM2
alert("进来了!");
var ev = document.createEvent("MouseEvents");
ev.initEvent("click", true, true);
comment.dispatchEvent(ev);
}

我用了alert()来做测试,结果它执行了。
但是后面的点击事件没有执行,document.createEvent("HTMLEvents");有人说要document.createEvent("MouseEvents");,但这两种都不起作用。所以也请各位大虾,有没有更好的解决方法。
IE、遨游、Chrome、Opera等都没问题,就是这个火狐,太不近人情了!!

恳请大家给个好的解决方案!!
...全文
171 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sundotLei 2010-03-26
  • 打赏
  • 举报
回复
2,

firefox MouseEvents不能触发a标签的链接跳转事件,
你可以在a里加一个 onclick="location.href='http://www.csdn.net'" 这样在ff下就可以触发
孟子E章 2010-03-26
  • 打赏
  • 举报
回复


<a id="ref" onclick="showClick()">...</a>

<script type="text/javascript">
function showClick()
{
alert("ok")
location.href='http://dotnet.aspx.cc'
}
window.onload=function()
{
document.getElementById("ref").onclick();
}
</script>
sundotLei 2010-03-26
  • 打赏
  • 举报
回复
1
function a(ev){
var ev=window.event||ev;
if (ev.ctrlKey && ev.keyCode==13){
alert('按下了ctrl+回车');
}
}

document.onkeydown=function(ev){
a(ev);
}
sjkof 2010-03-26
  • 打赏
  • 举报
回复
function a(ev){
var ev=window.event||ev;
if (ev.ctrlKey && ev.keyCode==13){
alert('按下了ctrl+回车');
}
}

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧