|
|
|
|
你可以用JavaScript去控制CSS-P元素的属性,但是,由于Netscape 4.0 and Internet Explorer 4.0的某些语法有所不同,我们应该知道这其间的不同之处,在这里,我们所要学习的就是,如果建立两种浏览器都能工作的JavaScript程序。
检测浏览器
首先,新开传奇私服,必须确定用户使用的浏览器是IE4还是Netscape4。下面这段简短的程序用以区别IE4和NS4。
ns4 = (document.layers)? true:false
ie4 = (document.all)? true:false
document.layers是NS4特有的,而document.all则是IE4特有的。所以检查这些特对对象就可以建立区分NS4和IE4的两个布尔型变量(ns4)和(ie4),无论何时何地,在需要检测浏览器时只需检查这两个变量即可,书写方式如下:
function check(){ if (ns4) { // do something in Netscape Navigator 4.0 } if (ie4) { // do something in Internet Explorer 4.0 }
}
使用JavaScript和CSS-P
假如有一个如下的< DIV >标签:
< div ID="blockDiv" STYLE="position:absolute; left:50; top:100; width:30;" > < img src="image.gif" WIDTH=30 HEIGHT=30 BORDER=0 > < /div >
记住这个例子,ID号不一定非要是blockDiv,改换任何名字,结果都是一样的。
对Netscape来说,访问CSS-P属性(property)的形式如下:
document.blockDiv.propertyName
或者
document.layers["blockDiv"].propertyName
对IE来说,访问CSS-P属性的形式为:
blockDiv.style.propertyName
或者
document.all["blockDiv"].style.propertyName
propertyName 可以是任何 CSS-P属性,如left, top,传奇s服发布网, visibility, z-Index, width,1.96黄金皓月, hight等等。
跨浏览器方法(指针变量)
建立跨浏览器通用程序一个可行之道是建立一个变量,这个变量根据所判别的浏览器,分别指向document.blockDiv或者blockDiv.style,称变量为指针变量。
if (ns4) block = document.blockDiv if (ie4) block = blockDiv.style
有了这个指针变量以后,我们就可以通过简便的方法来访问CSS-P属性。例如,要检查名为blockDiv的DIV块的left属性,只需写
block.left
此刻你就不必再考虑到用户所打开的是什么浏览器,如为Netscap,block变量指向document.blockDiv,如为IE,则指向blockDiv.style。
一个完整的例子
本例将弹出窗口以显示一个DIV层的left, top和visiibilty属性。
< html >
< head >
< title >一个完整的例子< /title >
< script LANGUAGE="JavaScript" > < !--
ns4 = (document.layers)? true:false ie4 = (document.all)? true:false
function check(){ if (ns4) block = document.blockDiv if (ie4) block = blockDiv.style }
//-- > < /script >
< /head >
< body onLoad="init()" >
< a href="javascript:alert(block.left)" >left -
< a href="javascript:alert(block.top)" >top -
< a href="javascript:alert(block.visibility)" >visibility s
< div ID="blockDiv" STYLE="position:absolute; visibility:visible; left:50px; top:100px; width:30px; height:30px; clip:rect(0px 30px 30px 0px); background-color:red; layer-background-color:red;" >
< /div >
< /body >
< /html >
注意:在< body onload=" >呼叫inin()函数,使得程序可以在页面完全下载以后才得以执行,这是因为当你在执行指针变量时,雅诗兰黛眼霜,DIV块必须已经存在了,如果在DIV块还加没载以前就执行变量的话,就会出现类似于“block is not defined”的程序错误指示。 |
|
|