社区
JavaScript
帖子详情
怎样得到鼠标移出当前IE窗口的时间?
cxj_lkr
2002-11-07 10:48:26
可能这个IE窗口有好几个Frame
...全文
20
2
打赏
收藏
怎样得到鼠标移出当前IE窗口的时间?
可能这个IE窗口有好几个Frame
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
希默软件
2002-11-07
打赏
举报
回复
document.body.onmouseout可以吗?
cxj_lkr
2002-11-07
打赏
举报
回复
sorry,写错了,是得到事件,不是时间,shy
js
鼠标
事件大全(事件说明)
js中
鼠标
事件及说明;例:onClick IE3|N2|O3
鼠标
点击事件,多用在某个对象控制的范围内的
鼠标
点击
setCapture和releaseCapture的小应用
web开发和windows开发最大的区别就是windows开发是有状态的,而web开发是无状态的,在windows中,一切操作都可以由程序来控制 ,除非强制执行ctrl+alt+del;但web操作就不一样了,即使执行很重要的操作,用户一点击浏览器关闭按钮,就将前面操作成果化为乌有.尽管可以在onunload事件中加些代码,让用户可以选择是否退出,但不能从根本上解决问题!
前几天,从网上看到setCapture方法,了解了一下,大体是这样的意思,当在IE文档某个区域中使用了这个方法,并且写了onclick或者 onmouse***等有关的
鼠标
事件方法,那么它就会监视相应的
鼠标
操作,即使你的
鼠标
移出
了IE,它也一样能捕获到.如果你在某div中的 onclick事件中写了一个alert命令,这时,你点击的关闭按钮,它也一样会弹出alert
窗口
.releaseCapture与 setCapture方法相反,释放
鼠标
监控.
利用这个特性,我们可以延缓IE的关闭
窗口
等破坏性操作,将一些重要的操作能够在破坏性操作执行之前
得到
处理.
关于实例的说明,见:http://blog.csdn.net/redleaf1995/archive/2008/03/06/2154784.aspx
JavaScript模仿
鼠标
拖动选择功能
NULL 博文链接:https://zhao103804.iteye.com/blog/797436
onmouse事件总结
一般事件 事件 浏览器支持 描述 onClick IE3|N2|O3
鼠标
点击事件,多用在某个对象控制的范围内的
鼠标
点击 onDblClick IE4|N4|O
鼠标
双击事件 onMouseDown IE4|N4|O
鼠标
上的按钮被按下了 onMouseUp IE4|N4|O
鼠标
按下后,松开时激发的事件 onMouseOver IE3|N2|O3 当
鼠标
移动到某对象范围的上方时触发的事件 onMouseMove IE4|N4|O
鼠标
移动时触发的事件 onMouseOut IE4|N3|O3 当
鼠标
离开某对象范围时触发的事件 onKeyPress IE4|N4|O 当键盘上的某个键被按下并且释放时触发的事件.[注意:页面内必须有被聚焦的对象] onKeyDown IE4|N4|O 当键盘上某个按键被按下时触发的事件[注意:页面内必须有被聚焦的对象] onKeyUp IE4|N4|O 当键盘上某个按键被按放开时触发的事件[注意:页面内必须有被聚焦的对象] ……
无限菜单之 xml+popup 版(IE5.5+)
在IE5.5+中开始支持的Popup
窗口
有很多很特别的特性: Popup
窗口
可以超出浏览器
窗口
区域; 可以不用担心被下拉框、flash、Iframe等这些东西遮挡; 一个Popup
窗口
打开后,当在它的区域以外点击或者另一个Popup
窗口
被打开时都会自动关闭; Popup
窗口
是没有焦点的; 用户不能改变Popup
窗口
大小; Popup
窗口
中的内容是不能被选择的; ...... 因为这些特征,Popup
窗口
制作的菜单比起传统的div(层)实现的菜单有着得天独厚的优势,不仅效果会非常好,而且代码也会是非常少的,只是对于实现起来却有几个需要解决的棘手问题:多个Popup共存的问题、如何递归生成菜单、如何控制Popup的显示隐藏…… 要用Popup制作菜单一个最重要的问题就是要解决多个Popup共存的问题,Msdn上的描述是:“一个Popup
窗口
打开后,当另一个Popup
窗口
被打开时就会自动关闭”。我本来一直以为Popup
窗口
是不可以多个共存的,不过偶然从51js上知道:父Popup
窗口
可以创建子Popup
窗口
,子Popup
窗口
又可以创建子Popup
窗口
,这样就可以同时存在一个Popup
窗口
家族,当父Popup
窗口
关闭,所有的子孙
窗口
都会关闭。这点恰好可以运用在菜单中——父菜单关闭子菜单一起关闭,省去很多繁琐的判断。 最开始,我写了一个简单的两层的Popup右键菜单,为此专门写了一个根据级数生成Popup
窗口
家族的递归方法: var pops = new Array(); // 用来存储Popup
窗口
家族的数组 function CreatePopup(degree) { if (degree < 0) // 层数不能小于0 return null; if (pops[degree] != null) //如果已经存在则不需创建 return pops[degree]; if (degree == 0) pops[0] = window.createPopup(); //创建最顶层Popup
窗口
else{ if (pops[degree - 1] == null) pops[degree - 1] = CreatePopup(degree - 1) //递归回溯一层一层开始创建 pops[degree] = pops[degree - 1].document.parentWindow.createPopup(); //从父Popup
窗口
创建子Popup
窗口
} pops[degree].document.body.setAttribute("degree", degree); return pops[degree]; } CreatePopup(1); //创建一个2层的Popup家族 这个方法可以解决多个Popup共存的问题,只是如果要使用这个方法来实现无限级菜单代码恐怕就比较繁琐了。这个例子,只是为我验证了无限级Popup
窗口
共存的可能,并没有继续走下去,因为我有了更好的思路。 Xml真是好东西,在Web控件中,可以
得到
灵活的运用(在我的上篇随笔《xml+xsl+htc,web控件开发的理想组合》中,已经简单提到了xml+xsl+htc的理想组合),在这里也不例外,先用Xml来定义好菜单的数据menu.xml:
通过Xml,可以很方便直观的定义菜单数据。 菜单数据已经定义好了,现在问题就是如何来把这些xml数据变成Popup菜单?!在传统的用div(层)来实现的菜单,一般都是一次性将所有级菜单数据生成HTML,放在各个层中,然后动态在制定位置显示隐藏这些层来实现模拟菜单的效果,在这里当然也可以这么做。回想一下菜单的特征:每次显示一级菜单,如果该级菜单中某菜单项中有子菜单,当
鼠标
经过或者点击该菜单项时弹出下级子菜单,这是一个递归的过程。如果我们可以:每次显示一级xml的内容,如果该级xml中某节点有子节点,当
鼠标
经过该节点时读取下级xml的内容,这也是一个递归的过程,而且恰好和菜单的显示过程是一一对应的。 既然大胆假设了一把,那么就来小心求证一下:首先,用xsl来实现解析一级xml很容易搞定,使用xsl:for-each遍历生成子菜单,并且,如果子菜单中还有子xml数据,将这些子xml数据存在子菜单对应的数据岛中,以备后面处理
鼠标
经过或点击菜单项时用到。下面是Menu.xsl用来生成子菜单的部分:
现在就是解决
鼠标
经过菜单项时,如果有子菜单则解析子菜单数据,并使用子Popup
窗口
显示子菜单数据,刚才我们存的数据岛这时候就可以派上用场了。在xsl中,需要用到一些客户端脚本来辅助完成了 // 创建
当前
窗体(可以是IE窗体也可以是Popup窗体)的Popup对象 // 这个Popup对象就是用来存储子菜单数据的 var oPopup = document.parentWindow.createPopup(); // 装载xsl var stylesheet = new ActiveXObject("Microsoft.XMLDOM"); stylesheet.async = false; stylesheet.load( "menu.xsl" ); //
鼠标
经过菜单项 function ItemOver(obj) { // 隐藏已经打开的菜单项 if (preObj != null) { if (preObj == obj) return; oPopup.hide(); // 要清空原Popup中的数据——document.write()方法是接着原来的内容往里面写,所以如果不清空会出现重复数据 oPopup = document.parentWindow.createPopup(); // 恢复前一个菜单项的状态 ItemNormal(preObj); preObj = null; } obj.className='PopMenuItemOver'; if (obj.cells(2).children.length > 0) //有子菜单 { obj.cells(2).children(0).src = "images/ArrowRHighlight.gif"; // 获取子菜单xml数据 var subMenuData = obj.all.tags("xml")(0).XMLDocument; // 根据子菜单xml数据和
当前
xsl文档生成HTML var sHtml = subMenuData.transformNode(stylesheet); // 将解析出来的HTML全部输出到Popup中,在Popup中,又可以利用这些脚本再Popup…… oPopup.document.write(sHtml); // 计算popup内容的实际宽度高度 oPopup.show(0, 0, 1, 1, obj); var width = oPopup.document.body.scrollWidth; var height = oPopup.document.body.scrollHeight; oPopup.hide(); // 显示菜单 oPopup.show(obj.offsetWidth, 0, width, height, obj); preObj = obj; } } //
鼠标
移出
菜单项 function ItemOut(obj) { if (oPopup.isOpen && preObj == obj) // 如果子菜单被打开则跳过 return; ItemNormal(obj); } // 恢复到菜单项的默认状态 function ItemNormal(obj) { obj.className='PopMenuItem'; if (obj.cells(2).children.length > 0) { obj.cells(2).children(0).src = "images/ArrowR.gif"; } } 这样:使用menu.xsl解析一级xml的内容生成一级菜单,如果该级xml中某节点有子节点,当
鼠标
经过该节点时,创建
当前
窗口
/Popup
窗口
的子Popup
窗口
,使用menu.xsl解析子节点中xml的内容并输出显示到子Popup中,递归,即可通过Popup显示所有子菜单。 作为一个菜单来讲,这个例子还有很多要完善的地方(当我再结合htc时它绝对是一个非常棒的菜单控件),但是这个例子已经完整地实现了一个xml结合xsl递归生成无限Popup菜单的例子,这个简洁的代码再次印证了xml+xsl+htc的理想组合。
JavaScript
87,997
社区成员
224,709
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章