东子

飞黄腾达

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  12 随笔 :: 0 文章 :: 3 评论 :: 0 引用

公告

2009年7月24日 #

说明:当没有DOCTYPE声明的时候document.body.scrollTop一切正常
当有DOCTYPE声明的时候document.body.scrollTop总是输出0;
当有DOCTYPE声明的时候document.body.scrollTop总是输出0;
我们必须改用另一个方法:
document.documentElement.scrollTop
我们刚才使用的document.documentElement.scrollTop不能用了,
它总是输出0.
这是我们又想到了 在没有声明的时候,
需要用
document.body.scrollTop
当有DOCTYPE声明的时候,
需要用document.documentElement.scrollTop方法来获取滚动条高度。
当没有声明的时候,用document.body.scrollTop方法。
所以我们需要用到if...else...去判断。
如果有DOCTYPE声明,我们该怎么办,如果没有DOCTYPE声明,我们该怎么办。
var scotop ;
if(document.body.scrollTop){
scotop = document.body.scrollTop;
}else{
scotop = document.documentElement.scrollTop
}
这样判断后,就可以在两种情况下同时使用了。
IE6,IE7,FF2测试通过.
FF3没装,无法测试。
这个方法是google找来的。

Code
程序解释:
解释1:
document.body.scrollTop:就是滚动条顶部到网页顶部的这段距离
window.pageYOffset是NS专用属性,它的含义和IE下的document.body.scrollTop一样 。

解释2:
当文档有了标准声明时, document.compatMode 的值就等于 "CSS1compat",
当没声明的时候, document.compatMode 的值等于 "BackCompat",所以想判断文档是否有声明,
可以这么写:
if (typeof document.compatMode != 'undefined' && document.compatMode != 'BackCompat'){
}

解释3:
当文档没有声明的时候,可以用
document.body.scrollTop;来获取滚动条高度。
posted @ 2009-07-24 13:31 Adoner 阅读(1349) 评论(0) 编辑

JS:attachEvent和addEventListener 使用方法
attachEvent方法,为某一事件附加其它的处理事件。(不支持Mozilla系列)

addEventListener方法 用于 Mozilla系列

举例:

Titledocument.getElementById("btn").onclick = method1;
document.getElementById("btn").onclick = method2;
document.getElementById("btn").onclick = method3;
写成这样:

 

var btn1Obj = document.getElementById("btn1");
//object.attachEvent(event,function);
btn1Obj.attachEvent("onclick",method1);
btn1Obj.attachEvent("onclick",method2);
btn1Obj.attachEvent("onclick",method3);
执行顺序为method3->method2->method1

如果是Mozilla系列,并不支持该方法,需要用到addEventListener
var btn1Obj = document.getElementById("btn1");
//element.addEventListener(type,listener,useCapture);
btn1Obj.addEventListener("click",method1,false);
btn1Obj.addEventListener("click",method2,false);
btn1Obj.addEventListener("click",method3,false);
执行顺序为method1->method2->method3

使用实例:


1。
var el = EDITFORM_DOCUMENT.body;
//先取得对象,EDITFORM_DOCUMENT实为一个iframe
if (el.addEventListener)...{
 el.addEventListener('click', KindDisableMenu, false);
} else if (el.attachEvent)...{
 el.attachEvent('onclick', KindDisableMenu);
}
2。
if (window.addEventListener) ...{
 window.addEventListener('load', _uCO, false);
} else if (window.attachEvent) ...{
 window.attachEvent('onload', _uCO);
}

 

posted @ 2009-07-24 09:37 Adoner 阅读(1187) 评论(0) 编辑