javascript的domReady
基本上每个库都有这东西,因为如果要对页面上的元素进行操作,我们必须等到页面加载了这个元素才行,否则会报错,但是我们很能判定某个元素是否已加载,但我们可以判定页面是否加载,这就是我们经常把代码放到window.onload = function(){}之中的缘由。但window.onload事件是待到页面上的所有资源被加载才激活,如果页面上有许多图片,音乐或falsh,而我们要操作的元素在的它们的下方呢?因此,W3C做了少有几桩好事,搞了DOMContentLoaded与addEventListener,可能也不是他们搞的,把某浏览器的私有实现盖上个大印,标明它是标准罢了,如safari的canvas,IE的getBoundingClientRect……DOMContentLoaded是DOM树完成时激活的事件,addEventListener支持多重加载与冒泡捕获。IE没有这东西,我在《javascript的事件加载》基本给出它的雏形了(注:昨天重写了该文),本文将在它的基础上进行进一步的封装与改进,如setTimeout改为零秒延迟,清除setTimeout,执行完加载后把加载函数清除掉,对IE框架结构的页面进行更安全的设置……最重要的是修正下面网友 wbkt2t 提到的在IE中的失误!
(function(){
dom = [];
var timer;
dom.isReady = false
dom.isFunction = function(obj){
return Object.prototype.toString.call(obj) === "[object Function]";
}
dom.Ready = function(handler){
dom.pollReady(); //如果没有建成DOM树,则走第二步,存储起来一起杀
if(dom.isReady){
handler()//如果已经建成DOM,则来一个杀一个
}else{
if(dom.isFunction(handler)){
dom.push(handler);//存储加载事件
}
}
};
// doScroll这个伟大的hack由牛人Diego Perini发掘出来
// http://javascript.nwbox.com/IEContentLoaded/
dom.fire = function(){//执行DOM树没有建成前加载的事件
if (!dom.isReady )
dom.isReady = true;
for (var i=0,length = dom.length; i<length; i++) {
var handler = dom[i];
handler.call(window);
}
if (timer) window.clearTimeout(timer);
dom.length = 0;//清空
};
dom.pollReady = function()
相关文档:
scrollHeight: 获取对象的滚动高度。
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
scrollWidth:获取对象的滚动宽度
offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度
offsetL ......
1.JavaScript中的对象
分为3种。
(1)JavaScript的内置对象
常用的有Date,Array,String,Math,对象,这些都是经常会用到的,一定要掌握好。
(2)文档对象模型(Document Object Model,DOM)
这个对象表示了当前浏览器的多个组件和当前的HTML文档。DOM我认为是JS中最重要的一个对象,通过他可以获得任何一个HTML元素 ......
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>间隔滚动图片</title>
<meta http-equiv= ......
eval()函数
JavaScript有许多小窍门来使编程更加容易。
其中之一就是eval()函数,这个函数可以把一个字符串当作一个JavaScript表达式一样去执行它。
举个小例子:
var the_unevaled_answer = "2 + 3";
......
正则
<script>
function checkvalue(){
if(document.Form.content.value.replace(/\s/g,"")=="")
{
alert("内容不能为空!");
document.addForm.content.focus();
return false;
}
document.addForm.submit();
return ......