=波波日志 > JavaScript/Ajax > 当iframe的designMode="On"时,在ff,如何下对iframe添加事件处理函数 =

当iframe的designMode="On"时,在ff,如何下对iframe添加事件处理函数

这几天再搞web编辑器,就为兼容ff搞得我头都大了,特别是如何对designMode="On"的iframe添加事件。好在搞好了,happy。。。
下面是一个demo代码,说明了如何在ff下对designMode="On"的iframe添加事件
+展开
-HTML
<html>
<head>
  <title>当iframe的designMode="On"时,在ff,如何下对iframe添加事件处理函数</title>
</head>
<body>
<script>
//扩展string原型
String.prototype.trim=function()
{
  return this.replace(/^\s*|\s*$/g,"");
}
//扩展string原型
String.prototype.removeHtml=function()
{
  return this.replace(/<[^>]*>/gi,"");
}
alert("<aa><bb>aaa<>ddddd".removeHtml())
var IsIE=navigator.appName!="Netscape";
function SetEdit()
{
  var frm=IsIE?frames["frm"]:document.getElementById('frm').contentWindow;
  frm.document.designMode="On";
  //绑定事件,注意要区别ie和ff的绑定,要不无法获取事件对象
  if(IsIE)
  {
    frm.document.onkeydown=function()
    {
      e=frm.event;//注意要获取的是iframe中的event对象
      if(e.ctrlKey&&e.keyCode==13)alert('ChildEvent');
    }
  }
  else//而且为ff时,为了获取事件对象需要addEventListener来添加事件监听。
  //而且是对iframe的contentWindow的document加事件,切记切记
  {    
    frm.document.addEventListener("keydown",
    function(e)
    {
     if(e.ctrlKey&&e.keyCode==13)
       alert('ChildEvent');
    }
    ,false);
  }
}
</script> 
<iframe src='about:blank' onload="SetEdit()" id='frm' name="frm"></iframe>
</body>
</html> 
类别:JavaScript/Ajax 作者:波波 日期:2009-06-16 【评论:0】 
 
暂时没有评论!
发表留言
  • *昵称:
  • 头像:
  • 电子邮件: [留下您的邮件,方便管理员回复您。]
  • 个人网站: *验证码:
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载或引用的作品侵犯了您的权利,请通知我们,我们会及时删除!
Powered by showbo,©2012WEB编程网桂ICP备05005887号 京公网安备1101055090