net_lover(孟子E章) 来来来!!!!!!!!! 这段script是同时支持IE和NS的,newPos里前两行是判断浏览器类型并取得鼠标坐标的,如果你了解(a==b)?c:d 的用法话这些并不难 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 but e.pageX从哪儿来的呢,e这个对象是哪儿的那? document.onmousemove=newPos;有一种将document.onmousemove绑定在newPos的感觉,如何解除呢? 这个e是Event对象啊!你自己写的:if(document.layers) document.captureEvents(Event.MOUSEMOVE);document.onmousemove=newPos;这个时候,你设置你的文档捕获鼠标移动事件,且处理函数定义为 newPos函数。当文档捕捉到相应事件后,会将事件交给处理函数处理,而e则为相应事件。在IE中,事件是当作变量交给处理函数的(就是那个e),所以要得到坐标,必须使用:e.pageX 这样的形式,但是在网景的浏览器中,事件是全局的,所以不需要那个e,只要用event.clientX 就可以得到坐标了。至于别的,我看你都明白,就这么多。 //document.captureEvents()方法用一个或多个事件类型做参数//这里希望截获的是鼠标移动事件,"Event.MOUSEMOVE"是常量,类似的还//有"Event.MOUSEDOWN",和"Event.KEYPRESS"等等,如果要监听多个事件,可以这样写//document.captureEvents(Event.MOUSEMOVE | Event.MOUSEDOWN)if(document.layers) document.captureEvents(Event.MOUSEMOVE);//具体指出事件发生所调用的方法,这里指定newPos()为鼠标移动触发的方法document.onmousemove=newPos;function newPos(e){//得到鼠标当前的坐标值,因为在IE和NS中取坐标值的参数不同,所以先判断是否IE,再取值X=(navigator.appName.indexOf("Microsoft")!=-1)?event.clientX:e.pageXY=(navigator.appName.indexOf("Microsoft")!=-1)?event.clientY:e.pageY//把取得以后的坐标值作为参数传递给lyrWrt()lyrWrt("您鼠标的位置坐标是:[<b><font color=red>"+X+"</b></font> : <b><font color=blue>"+Y+"</b></font>]")}//修改文档对象中id为"id"的包含的HTML文本function lyrWrt(text) {if (document.layers) { var lyr = document.layers.id.document lyr.open() lyr.write(text) lyr.close()}else document.all.id.innerHTML = text}呵呵,还有什么需要说明的? 为什么不显示啊? chrome浏览器的事件流是冒泡还是捕获 真奇怪,为什么clearInterval方法不起作用了? 为什么我无法得到元素的高啊! IE6 7 Cookie 问题 如何自己控制文本框高度 求关于验证 字符串 Jquery插件DataTables中的TableTools导出csv中文乱码 請問怎樣獲得本頁的文件名(除文件名其他部分都不要﹐包括在框架中使用正確) 贡献大家一段设置字体和颜色的代码,欢迎优化 如果要知道访问者的一些信息,比如ip等,要怎样做?谢谢! showModalDialog的返回值
有一种将document.onmousemove绑定在newPos的感觉,如何解除呢?
你自己写的:
if(document.layers) document.captureEvents(Event.MOUSEMOVE);
document.onmousemove=newPos;这个时候,你设置你的文档捕获鼠标移动事件,且处理函数定义为 newPos函数。
当文档捕捉到相应事件后,会将事件交给处理函数处理,而e则为相应事件。在IE中,事件是当作变量交给处理函数的(就是那个e),所以要得到坐标,必须使用:e.pageX 这样的形式,但是在网景的浏览器中,事件是全局的,所以不需要那个e,只要用event.clientX 就可以得到坐标了。至于别的,我看你都明白,就这么多。
//这里希望截获的是鼠标移动事件,"Event.MOUSEMOVE"是常量,类似的还
//有"Event.MOUSEDOWN",和"Event.KEYPRESS"等等,如果要监听多个事件,可以这样写
//document.captureEvents(Event.MOUSEMOVE | Event.MOUSEDOWN)
if(document.layers) document.captureEvents(Event.MOUSEMOVE);
//具体指出事件发生所调用的方法,这里指定newPos()为鼠标移动触发的方法
document.onmousemove=newPos;
function newPos(e){
//得到鼠标当前的坐标值,因为在IE和NS中取坐标值的参数不同,所以先判断是否IE,再取值
X=(navigator.appName.indexOf("Microsoft")!=-1)?event.clientX:e.pageX
Y=(navigator.appName.indexOf("Microsoft")!=-1)?event.clientY:e.pageY
//把取得以后的坐标值作为参数传递给lyrWrt()
lyrWrt("您鼠标的位置坐标是:[<b><font color=red>"+X+"</b></font> : <b><font color=blue>"+Y+"</b></font>]")
}//修改文档对象中id为"id"的包含的HTML文本
function lyrWrt(text) {
if (document.layers) {
var lyr = document.layers.id.document
lyr.open()
lyr.write(text)
lyr.close()}
else document.all.id.innerHTML = text
}
呵呵,还有什么需要说明的?