您的位置:寻梦网首页编程乐园CSS 初步动态HTML 5 天通
动态HTML教程 - 第三天
Taylor 1998.3.9

 

有很多中办法可以利用Javascript设定条件。其中办法是确定用户所使用的浏览器的类型和版本, 并据此作出评估。在我的一篇文章里我专门谈了这个问题。 现在我还发现了更好的解决办法。

浏览器类型和版本条件设定的第1个问题是浏览器的改变的问题。如果你将浏览器版本设定为Internet Explorer 4.0 和Netscape 4.0,那么等5.0版的浏览器发布时你的网页会发生什么情况?或者这两种新发布的浏览器版本互相兼容,而你的脚本中都没有考虑到这些问题又会如何? 所以根据浏览器类型和版本设定条件的方法不可行。

更好的方法是根据功能设定条件。如果你读过Javascript教程, 你一定知道Javascript的"if"语句中测试一个语句返回的是真true (1)还是假false (0),然后它将根据返回的布尔值执行一个语句。通常情况下它被用来测试某些变量的条件,例如:

    if (x<=5) setTimeout('doSomething()', 500);

但是一个对象是否存在也可以作为被测试的条件。如果某个对象存在,则返回真,否则返回假。 所以为了提供一个有效的测试条件,你必须从某个特定角度来测试一个对象的代表性质以便应用动态HMTL。

Netscape利用分层运行动态HTML。它的运行方式同图象数组在Navigator中的方式类似。你设定一个分层对象的数组,象对图象的引用那样设定引用方式。所以document.layers['foobar'] 则是代表被相对定位或是绝对定位了的<DIV>的对象 (在Netscape 模式中,它必须是在你 的文件NAMEID属性为"foobar"的一个绝对定位或相对定位了的<DIV><SPAN>)。然后你就可以设定上述各种属性。你还可以用document.foobar来代表这个对象。

在Internet Explorer中,则用一种水平的结构来代表对象。所以IDNAME属性为foobar<DIV>就是foobar,所以你可以用foobar.style.left来访问或设定这个对象的左边的位置。还有许多种循环访问一系列对象的方法(非常有用)。在Explorer的文件对象模块(DocumentObject Model)中,对象可以代表所有在该对象之下的对象(object object object)。所以foobar.all 包含所有包含在foobar之下的HTML标签。无论什么时候你都可以找到一个很好的类属对象-document.all,因为所有的网页中都有一个文件(document),因此它必然有一个document.all对象。>>

动态HTML教程
第一页 动态HTML教程 - 第三天
第二页 微软和网景不同的语法
第三页 使其在两种浏览器中都可用
第四页 脚本如何运行
第五页 访问对象的一个技巧
第六页 制作网猴们互相追赶的动画效果

[第1天][第2天][第3天][第4天][第5天]


本文本站根据《网猴》相关文章改编,版权归《网猴》所有