CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  JavaScript

急请高手救火---在IE中可以运行但NS中却不行,

楼主liberationxin(高山)2005-11-02 09:42:21 在 Web 开发 / JavaScript 提问

<HTML>  
  <BODY>  
      <div   id=mydiv   onmouseout='cls()'     style="width:200px;height:200px;background-color:seashell">  
        <table         cellpadding="0"   cellspacing="0"         border="1"         frame=box>  
                <tr   style="height:30px"><td>密码管理</td></tr>  
                  <tr   style="height:30px"><td>外观选择</td></tr>  
                  <tr   style="height:30px"><td>权限设置</td></tr>  
                  <tr   style="height:30px"><td>退出系统</td></tr>  
        </table>  
  </div>  
  <input   name=dd   type=button   value='显示层'     onclick=showdiv()>  
  </BODY>  
  </HTML>  
  <script>  
  /*  
  怎样才能做到,只要鼠标离开层,层才会隐藏,否则一直显示  
  下面方法只可在IE中运行但在NS却不运行  
  怎样改可即在IE中运行也可在NS中运行  
  */  
    function   cls()  
  {  
      var   div   =   document.getElementById("mydiv")  
      if(div.componentFromPoint(event.clientX,event.clientY)=="outside")  
      {  
          div.style.visibility='hidden'  
      }  
  }  
    function   showdiv()  
  {  
      var   div   =   document.getElementById("mydiv")  
          div.style.visibility='visible'  
  }  
   
  </script>  
  问题点数:30、回复次数:11Top

1 楼menrock(教坏细路)回复于 2005-11-02 10:08:41 得分 0

<HTML>  
  <BODY>  
      <div   id=mydiv   onmouseout='cls()'     style="width:200px;height:200px;background-color:seashell">  
        <table         cellpadding="0"   cellspacing="0"         border="1"         frame=box>  
                <tr   style="height:30px"><td>密码管理</td></tr>  
                  <tr   style="height:30px"><td>外观选择</td></tr>  
                  <tr   style="height:30px"><td>权限设置</td></tr>  
                  <tr   style="height:30px"><td>退出系统</td></tr>  
        </table>  
  </div>  
  <input   name=dd   type=button   value='显示层'     onclick=showdiv()>  
  </BODY>  
  </HTML>  
  <script>  
  /*  
  怎样才能做到,只要鼠标离开层,层才会隐藏,否则一直显示  
  下面方法只可在IE中运行但在NS却不运行  
  怎样改可即在IE中运行也可在NS中运行  
  */  
    function   cls()  
  {  
      var   div   =   document.getElementById("mydiv")  
          div.style.visibility='hidden'  
  }  
    function   showdiv()  
  {  
      var   div   =   document.getElementById("mydiv")  
          div.style.visibility='visible'  
  }  
   
  </script>Top

2 楼liberationxin(高山)回复于 2005-11-02 10:16:27 得分 0

当从'密码管理'   到'外观选择'   过程中,层会自动隐藏,所以用componentFromPoint,但此方法却在NC中不运行Top

3 楼xdspower(杂食菜熊)回复于 2005-11-02 10:44:36 得分 30

var   div   =   document.getElementById("mydiv")   这个是没有考虑兼容性的,下面是一段兼容性处理代码,你加入在var   div   =   document.getElementById("mydiv")   前并把document.getElementById("mydiv")替换成getObjectById("mydiv"   )试一试。  
  function   lib_bwcheck(){   //兼容性处理代码  
  this.ver=navigator.appVersion;    
  this.agent=navigator.userAgent  
  this.dom=document.getElementById?1:0  
  this.win   =   (navigator.appVersion.indexOf("Win")>0);  
          this.xwin   =   (navigator.appVersion.indexOf("X11")>0);  
  this.ie5=(this.ver.indexOf("MSIE   5")>-1   &&   this.dom)?1:0;  
  this.ie6=(this.ver.indexOf("MSIE   6")>-1   &&   this.dom)?1:0;  
  this.ie4=(document.all   &&   !this.dom)?1:0;  
  this.ie=this.ie4||this.ie5||this.ie6  
  this.mac=this.agent.indexOf("Mac")>-1  
  this.opera5=this.agent.indexOf("Opera   5")>-1  
  this.ns6=(this.dom   &&   parseInt(this.ver)   >=   5)   ?1:0;    
  this.ns4=(document.layers   &&   !this.dom)?1:0;  
  this.bw=(this.ie6   ||   this.ie5   ||   this.ie4   ||   this.ns4   ||   this.ns6   ||   this.opera5   ||   this.dom||false);  
          this.width   =   null;  
          this.height   =   null;  
  return   this  
  }  
   
  var   bw   =   new   lib_bwcheck();  
   
  function   getObjectById(   ID   )   {  
  if   (bw.ns6)   return   document.getElementById(ID);  
  else   if   (bw.ns)   return   document.layers[ID];  
  else   return   document.all[ID];  
  }  
   
  Top

4 楼liberationxin(高山)回复于 2005-11-02 11:20:51 得分 0

楼上兄才,方法不行Top

5 楼liberationxin(高山)回复于 2005-11-02 13:30:32 得分 0

自己顶一下,不然石沉大海Top

6 楼liberationxin(高山)回复于 2005-11-02 17:29:37 得分 0

怎么没有人回答Top

7 楼xdspower(杂食菜熊)回复于 2005-11-02 17:59:06 得分 0

可能你的所有定义中要同时定义   ID   和name,比如你  
  <div   id="mydiv"   name="mydiv"   onmouseout="cls();"   style="width:200px;height:200px;background-color:seashell">//注意,你的原来代码中cls()部分的引号不对的。  
  此外你最好跟踪调试一下程序。Top

8 楼liberationxin(高山)回复于 2005-11-02 17:59:35 得分 0

版主哪里去了,怎么不来救火?Top

9 楼xdspower(杂食菜熊)回复于 2005-11-02 18:06:31 得分 0

<HTML>  
  <head>  
  <script>  
  function   lib_bwcheck(){   //兼容性处理代码  
  this.ver=navigator.appVersion;  
  this.agent=navigator.userAgent  
  this.dom=document.getElementById?1:0  
  this.win   =   (navigator.appVersion.indexOf("Win")>0);  
  this.xwin   =   (navigator.appVersion.indexOf("X11")>0);  
  this.ie5=(this.ver.indexOf("MSIE   5")>-1   &&   this.dom)?1:0;  
  this.ie6=(this.ver.indexOf("MSIE   6")>-1   &&   this.dom)?1:0;  
  this.ie4=(document.all   &&   !this.dom)?1:0;  
  this.ie=this.ie4||this.ie5||this.ie6  
  this.mac=this.agent.indexOf("Mac")>-1  
  this.opera5=this.agent.indexOf("Opera   5")>-1  
  this.ns6=(this.dom   &&   parseInt(this.ver)   >=   5)   ?1:0;  
  this.ns4=(document.layers   &&   !this.dom)?1:0;  
  this.bw=(this.ie6   ||   this.ie5   ||   this.ie4   ||   this.ns4   ||   this.ns6   ||   this.opera5   ||   this.dom||false);  
  this.width   =   null;  
  this.height   =   null;  
  return   this  
  }  
   
  var   bw   =   new   lib_bwcheck();  
   
  function   getObjectById(   ID   )   {  
  if   (bw.ns6)   return   document.getElementById(ID);  
  else   if   (bw.ns)   return   document.layers[ID];  
  else   return   document.all[ID];  
  }  
  </script>  
  </head>  
  <BODY>  
  <div   id=mydiv   onmouseout='cls()'   style="width:200px;height:200px;background-color:seashell">  
  <table   cellpadding="0"   cellspacing="0"   border="1"   frame=box>  
  <tr   style="height:30px"><td>密码管理</td></tr>  
  <tr   style="height:30px"><td>外观选择</td></tr>  
  <tr   style="height:30px"><td>权限设置</td></tr>  
  <tr   style="height:30px"><td>退出系统</td></tr>  
  </table>  
  </div>  
  <input   name=dd   type=button   value='显示层'   onclick=showdiv()>  
  </BODY>  
  </HTML>  
  <script>  
  /*  
  怎样才能做到,只要鼠标离开层,层才会隐藏,否则一直显示  
  下面方法只可在IE中运行但在NS却不运行  
  怎样改可即在IE中运行也可在NS中运行  
  */  
  function   cls()  
  {  
  var   div   =   getObjectById("mydiv")  
  div.style.visibility='hidden'  
  }  
  function   showdiv()  
  {  
  var   div   =   getObjectById("mydiv")  
  div.style.visibility='visible'  
  }  
   
  </script>  
  -------------------  
  上面的代码在IE6和firefox1.5Bate2上的显示效果完全一样。Top

10 楼liberationxin(高山)回复于 2005-11-03 07:47:07 得分 0

楼上的兄弟你把程序本意改错了,当鼠标从<tr>到<tr>过程中,虽然在<table>中,也会出发  
  onmouseover   事件,层会自动隐藏,所以用componentFromPoint判断,当前的鼠标是否在控件层中,但此方法却在NC中不运行!此问题难住我两天了---急啊  
  Top

11 楼liberationxin(高山)回复于 2005-11-03 07:48:32 得分 0

刚才打错了是onmouseout   而不是onmouseoverTop

相关问题

  • 救火!!!!!
  • 救火!
  • 在IE里运行exe
  • IE无法运行exe
  • Win2K+D6+ADO+SQL Server2000开发的程序运行正常,在98下报错!!快来救火!!!
  • 救火啊~~~
  • 快救火!!!
  • 紧急救火
  • 紧急救火
  • 救火,救火!!各位老大帮忙!!!

关键词

得分解答快速导航

  • 帖主:liberationxin
  • xdspower

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo