本文来源:网站建设-网站制作|网络营销专家慧云科技-抢滩登陆2009-6-19 17:48:09
可以使用JavaScript来访问和改变CSS的定位元素的属性。但是事情有时候不像的那么好,一些语法在Netscape 4.0和Internet Explorer 4.0中有稍微的区别。既然已经知道了这些差别,下面将介绍一些建立对于两种浏览器都兼容的JavaScript程序——这些程序将在这两种浏览器中很好的运行。
使用JavaScript和CSS定位
假如有一个这样的DIV标记:
或许你会对上面的“blockDiv”名称感到陌生和奇怪,但是请记住这只是一个例子,实际使用时可以用任意的名字命名
块的“ID”标识,使用效果不会因此而改变。
用JavaScript来访问CSS定位的内容,不同的浏览器有不同的做法:
对于Netscape一般是通过这种方法来访问CSS定位属性的;
Document.blockDiv.properyName
或者是
Document.layers[“blockDiv”].PropertyName
对于Internet Explorer,用下面的方法:
blockDiv.style.propertyName
或者是
Document.all[“blockDiv”].style.propertyName
上面几段代码中的“propertyName”地方可以填上任意的CSS定位属性名称,例如left,top,visibility,z-index,width或其他CSS定位属性。
到这里为止,这些简单的语句已经可以把两种浏览器分隔开了,但是具要它们做什么或者是怎么样做,还需要深入下去。
使用兼容的Pointer变量可以说,创建对于两种浏览器都兼容代码的最好方法是指定变量,可以让变量指向“document.blockDiv”或者“blockDiv.style”,变量的行为完全取决于使用Netscape还是Internet Explorer.请看下面的例子,我们把它们叫做“pointer变量”。
If(ns4)block =document.blockDiv
If(ie4)block=blockDIv.style
可以看出,在创建了这个变量以后,可以快捷使得地使用各种属性。例如 ,如果想要检查
标记的左边界坐标值,可以简单写上:
Block.left
此时,用户使用哪一种浏览器并没有关系,因为对于Netscape,”block”指向“document.blockDiv”,
而对于Internet Explorer,”block”指“blockDiv.style”.
一个完整的例子
最后我们来看一个例子,它将弹出一个对话框,告诉该CSS定位元素的left,top值。

特别注意:上面的例子在“BODY onLoad=”””里调用了“init()”函数来使剩下的页面全部加载完毕后才继续执行。这是因为当定义完Pointer变量后,其中
标记必须是已经存在的。否则,如果试着在页面没有加载完毕时就定义
标记,那么将看到一个JavaScript错误警告,例如“blockDiv in not defined!”.
现在总结一下两个浏览器的差别:
