window.onload = function() {
    setTimeout("addfun()", 2000);
}
document.onkeydown = keydown;
var iframes = document.getElementsByTagName("iframe");
function addfun() {
    var docu = iframes[0].contentWindow.document;
    if (Ext.isIE) {
        docu.onkeydown = keydown;
    }
    else {
        Ext.MessageBox.alert("提示", "火狐暂时不支持快捷键操作");
    }
}
function keydown(e) {
  if (iframes[0].contentWindow.event.keyCode == 13 && iframes[0].contentWindow.event.ctrlKey) {
  iframes[0].contentWindow.event.keyCode = 13;
  alert("发送成功!");
  return;
  }
}
我现在 想实现的功能是 在一个HTMLEdit 控件中 自动生成了IFRAME和HTML 页面 我想在 这个页面里面 获取IFrame中HTML 的onkeydown 事件 但是 我把脚本 也动态插入了 IFrame的html中 可是 js不执行 所以 我只能将iframe 中html 的onkeydown 绑定到它的父级的 onkeydown 事件上 这个方法 已经 在IE 里面实现 可是火狐 和其他浏览器 非得在onkeydown(e) 有个参数 所以 我想 在上面的代码中怎么 兼容火狐.

解决方案 »

  1.   

    function keydown() {
    var e = arguments[0] || window.event;
    //还有FF里面键盘码是用的which不是keyCode,自己兼容下吧,手上没FF做实验
    if (iframes[0].contentWindow.event.keyCode == 13 && iframes[0].contentWindow.event.ctrlKey) {
    iframes[0].contentWindow.event.keyCode = 13;
    alert("发送成功!");
    return;
    }
      

  2.   

    需要iframe 中html 的onkeydown事件在加载的时候绑定到它的父级的页面的 onkeydown 事件上 所以 需要动态绑定 onkeydown事件window.onload = function() {
    setTimeout("addfun()", 2000);
    }
    document.onkeydown = keydown;
    var iframes = document.getElementsByTagName("iframe");
    function addfun() {
    var docu = iframes[0].contentWindow.document;
    if (Ext.isIE) {
    docu.onkeydown = keydown;
    }
      

  3.   

     Key =  event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
      

  4.   

    Key = event.keyCode || event.which || event.charCode;
      

  5.   

    蛋疼结贴了
    顺带一句:YY我X你妹开我号不结贴