同时兼容标准的非标准的scrollTop获取

2008-01-13 19:45 归类于:JavaScript

我们知道,应该WEB标准,也就是网页加上

XML/HTML代码
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  

 

声明后,会使document.body.scrollTop失效,而代替的方法则是使用document.documentElement.scrollTop。

另外,可以通过判断document.compatMode的值来确定网页是否有标准声明,因此为了简化程序,同时兼容标准和非标准,我一般都是像下面这样在程序的前部分便把document.body或document.documentElement赋值给body。

XML/HTML代码
  1. var body = document.compatMode == "CSS1Compat" ? document.documentElement : document.body;  

 

但实际上在网页的头部加入这段代码后,在非标准的网页中却不能用body.scrollTop这样来获取滚动条的位置。

经测试后得知,将此段代码放到<body>以后则可以完全正常

Tags:scrolltop,网页标准 | 阅读:961 | 评论:0

最短的带星期显示的数字钟代码

2007-11-10 11:24 归类于:JavaScript

 

JavaScript代码
  1. <div id="databox"></div>   
  2. <script>   
  3. setInterval("databox.innerHTML=new Date().toLocaleString()+' 星期'+'日一二三四五六'.charAt(new Date().getDay());",1000);   
  4. </script>  

这是我目前见过的最短的数字钟代码了

Tags:数字钟 | 阅读:2137 | 评论:0

FireFox和IE中JavaScript的区别(一)

2007-10-14 22:17 归类于:JavaScript

1、获取所在框架的框架名称

IE:

JavaScript代码
  1. document.parentWindow.name  

 FireFox:

JavaScript代码
  1. document.defaultView.name  

2、设置框架为设计模式

框架的设计模式是网页编辑器的基本,页FireFox中设置此模式也和IE中不同:

IE:

JavaScript代码
  1. document.getElementById('editorIframe').contentWindow.designMode = "on";  

 FireFox:

JavaScript代码
  1. document.getElementById('editorIframe').contentDocument.designMode = "on";  
Tags:firefox,框架 | 阅读:1645 | 评论:0

几段Javascript的函数对象扩展

2007-10-10 19:32 归类于:JavaScript

 

1、这两段为前文所讲的call和apply应用

JavaScript代码
  1. Function.prototype.bind = function (object){   
  2.     var __method = this;   
  3.     return function (){   
  4.         __method.apply(object,arguments);   
  5.     };   
  6. };   
  7.   
  8. Function.prototype.bindAsEventListener = function (object){   
  9.     var __method = this;   
  10.     return function (event){   
  11.         __method.call(object,event||window.event);   
  12.     };   
  13. };   

 

2、指定时间后再执行该方法

JavaScript代码
  1. Function.prototype.timeOut = function(t) {   
  2.     var __method = this;   
  3.   
  4.     var argu = Array.prototype.slice.call(arguments,1);   
  5.     var f = function(){   
  6.         __method.apply(null, argu);   
  7.     }   
  8.     return setTimeout(f, t);   
  9. }   

有别于系统的setTimeout,该方法可以向要执行的程序传递参数,下面是例子:

JavaScript代码
  1. function hello (arg1, arg2) {   
  2.     alert("arg1:" + arg1 + "\narg2:" + arg2);   
  3. }   
  4. hello.timeOut(1000, '第一个参数''第二个参数');  

该方法返回的值也可以用clearTimeout来清除

Tags:bind,bindaseventlistener,settimeout | 阅读:949 | 评论:0

FireFox中使用用JavaScript注意跟上单位

2007-10-08 21:14 归类于:JavaScript

在IE中,我们可以这样设置对象的宽度

JavaScript代码
  1. document.getElementById('thediv').style.width = 100;  

但是这段代码在FireFox中却是无效的,必须要这样:

JavaScript代码
  1. document.getElementById('thediv').style.width = "100px";  

 

Tags:FireFox,单位 | 阅读:1770 | 评论:0