Netscape 6已经正式版发布,由于新版本的浏览器采用了全新的技术,是以Mozilla和Gecko为基础的。Gecko是下一代浏览器引擎,它支持HTML、CSS、W3C DOM、XML、RDF以及JavaScript等开放的Internet标准。Netscape 6和以前的版本不兼容,因此,以前在Netscape Navigator里编写的程序在新版本里不能正常运行。本文将向大家探讨在Netscape 6浏览器里进行动态HTML编程的基本原理。以前当我们涉及到浏览器无关的DHTML动画时,我们的代码将变得很复杂。不同的浏览器对其属性采用不同的句法和不同语义。一个浏览器使用top,而另一个浏览器也许使用pixelTop.一个浏览器使用属性值来确定窗口的位置问题,而另一个浏览器则使用参考整个文档的方法来实现。Netscape 6是DOM(文档对象模型)兼容的浏览器,而DOM(文档对象模型)是编写浏览器无关脚本的关键。Netscape 6对W3C规范的支持,确实使我们在进行编写脚本代码时轻松了许多。但是Internet Explorer 5.5的DOM和Netscape 6的DOM仍然有一些差异。
本文将向你展示一些在网页中编写动态HTML的基本原理。innerHTML属性原本不是DOM标准的一部分,但是IE和Netscape 6都支持它.我们将向你展示怎样利用这一属性来建立引人入胜的页面效果.我们将说明动画的原理:在页面里怎样移动元素。由于动画与坐标位置有关,我们将涉及到怎样来设定、取得和初始化它们的坐标位置。还将探讨元素可视性以及IE 5和Netscape 6之间的差异。我们将也讨论对处理Netscape将要废弃的BLINK标记可供选择的方案。
在本文里,你将学会:
怎样提取一个标记的所有属性
怎样设定任意HTML标记的内容
怎样水平、垂直移动元素
怎样设定、取得、初始化、操纵坐标值
怎样设定、取得、初始化、操纵元素的可视性
怎样模拟闪烁效果。
1.怎样提取一个标记的所有属性?
当我们要制作具有动画效果的页面时,我们要知道怎样去参考要移动的元素。最好的方法是知道其ID值。我们可以利用元素的ID值来参考一个元素的所有属性和方法。例如:要找出ID="bar"的元素的标记名,我们可以这样:bar.nodeName。例如:假如我们在页面的某一处设置了<P id="examId">……</P>,下面的的代码将给出ID为examId的标记的名字。
<a href="javascript:alert('ID 为 examId 的标记名是: '+examId.nodeName)">点击这里</a>
结果如图1。
有时,我们需要搜索所有在页面中的某一个元素,由于Internet Explorer 5 和Netscape 6都支持 getElementsByTagName()方法,它可以生成一个元素数组。此方法适用于任意元素,因此可以提取整个文档里的所有标记,或者在某一个指定的标记的范围里,如DIV 或P等里的某一元素。下面的函数提取本文档里所有的FONT和ID=foo的DIV标记里的FONT标记个数。
<SCRIPT LANGUAGE="JavaScript">
<!--
function handleAllTags() {
var arrayOfDocFonts, arrayOfDivFonts;
if (document.all || document.getElementById) {
arrayOfDivFonts = foo.getElementsByTagName("font");
arrayOfDocFonts = document.getElementsByTagName("font");
}
else
{
document.write("不可识别的浏览器型号"); }
alert("本文档和DIV里FONT标记个数分别为: " + arrayOfDocFonts.length + " 和 "
+ arrayOfDivFonts.length + "个。");}
// -->
</SCRIPT>
结果如图2。
JavaScript使用了许多集合的概念。集合就是元素的有序列表。我们可以通过数组或者item()方法对某一特定的元素进行访问。下面的代码计算出第3个元素[index=2]的FONT COLOR值。
function printColors() {
var arrayOfDocFonts, arrayOfDivFonts;
if (document.all || document.getElementById) {
arrayOfDivFonts = foo.getElementsByTagName("font");
arrayOfDocFonts = document.getElementsByTagName("font");
}
else {
document.write("不可识别的浏览器");
}
alert('arrayOfDocFonts[2].color = ' + arrayOfDocFonts[2].color + ';
arrayOfDocFonts.item(2).color = ' + arrayOfDocFonts.item(2).color);
}
结果如图3。
注意:本页所有代码必须在Internet Explorer 或 Netscape 6里才能正确执行。
2.设定HTML内容
Internet Explorer的innerHTML属性并不是 W3C DOM规范的一部分,然而,应用户的要求,基于Mozilla和 Gecko的浏览器(如Netscape 6)决定在2000年5月19以后的版本支持此属性(Mozilla M16及以后的版本,Netscape 6 PR2及以后的版本)。让我们来看个例子:通过点击按钮来刷新计数器的值。
<DIV ID="counter">点击的次数 = 0</DIV>
<FORM>
<INPUT TYPE="button" VALUE="增加计数" onclick="updateMessage()">
</FORM>
<SCRIPT LANGUAGE="JavaScript">
<!--
var hits = 0;
function updateMessage() {
hits += 1;
document.getElementById("counter").innerHTML = "点击的次数 = " + hits;
}
// -->
</SCRIPT>
当点击按钮时函数updateMessage()被调用一次,点击的次数增加1,DIV标记里的内容更新一次。
顾名思义,innerHTML属性值代表HTML标记里的内容,即一个完整标记的内容。比如上例<DIV ID="counter">点击的次数 = 0</DIV>中<DIV></DIV>里的内容“点击的次数 = 0”。
innerHTML属性也可以包含许多HTML 标记,例如:
<DIV ID="counter2"><FONT COLOR="red">点击的次数 = 0</FONT></DIV>
此时的innerHTML的内容为:<FONT COLOR="red">点击的次数 = 0</FONT>
可以通过下面的方法进行刷新内容:
document.getElementById("counter2").innerHTML = "<FONT COLOR='purple'>点击的次数 = " + hits + "</FONT>";
3.水平和垂直移动元素
编写DHTML代码最头疼的一件事情就是浏览器无关地在屏幕上移动元素,当我们提起元素水平位置和垂直位置时,自然会想到left和top,Netscape Navigator使用left和top属性,但Internet Explorer使用style的pixelLeft和pixelTop属性,Netscape 6则使用W3C规范的left和top属性,由于Internet Explorer 5以上版本的浏览器也支持此属性,因此,我们可以编写浏览器无关的水平移动元素的脚本代码:
<FORM>
<INPUT ID="counter1" STYLE="position:relative; left:'0px'" TYPE="button" VALUE="移动按钮"
onclick="document.getElementById('counter1').style.left = '100px';">
</FORM>
单击上面的代码生成的按钮时,可以看到它移动到100px的位置,如果你不写上单位px,你不会出错,但那不是W3C/DOM推荐使用的。
4.设定元素坐标值
设定和取得元素位置的浏览器无关W3C规范的办法是通过style元素的left和top属性来实现的,尽管这些属性被解释为物理计量单位,即字符串,这些字符串包含一个数字和一个“px”。我们在设定这些属性的时候,必须在数字的后面加上“px”。例如:给ID="counter1"的元素设定水平位置为 xlocation,我们应当写:
document.getElementById('counter1').style.left = xlocation + "px";
如果不写“px”,浏览器也能识别。浏览器会认为计量单位是px,会自动加上它。但你要获取元素位置的时候,结果总是带"px" 的字符串。
document.getElementById('counter1').style.left = xlocation;
The browser assumes the unit of measure is pixels and will add the "px" automatically. You'll always get a "px"-ended string when querying the top and left properties.
记住left和top的返回值是很重要的,否则,你的浏览器会报告错误啊。如果你需要他们的数值时,可以使用parseInt()方法,此方法把字符串从左到右转换成整数,当没有整数可以进行转换的时候,转换停止。例如:parseInt("50px") 的结果是 50。下面的代码在你每按一次按钮的时候,按钮位置增加50px。
<FORM>
<INPUT ID="counter1" STYLE="position:relative; left:'0px'" TYPE="button"
VALUE="移动按钮" onclick="handleClick()">
</FORM>
<SCRIPT LANGUAGE="JavaScript">
<!--
var xlocation = parseInt(document.getElementById('counter1').style.left);
function handleClick() {
xlocation += 50;
document.getElementById('counter1').style.left = xlocation + "px";
}
// -->
</SCRIPT>
5.元素的可视性
要编写浏览器无关的设定和获取元素可视性的方法是采用W3C规范的推荐的style元素的visibility属性。visibility可以取以下三个值:
1."",即 空字符串
2."hidden"
3."visible"
当元素的visibility值为""或为"visible"时,元素在浏览器里是可见的,为"hidden"时,则不可见。要检测某元素的可视性,有两个办法:
if (visibility == "")...
或者:
if (visibility != "hidden")...
6.元素闪烁效果的实现
<blank>标记是Netscape Navigator特有的,Netscape 6将会在以后取消这一标记。W3C规范推荐使用样式单style的text-decoration:blink来实现这一效果,但它只有Netscape Navigator 和 Netscape 6支持,Internet Explorer仍旧不支持这一效果。下面的两行代码在Netscape Navigator 和 Netscape 6里都会闪烁,
<BLINK>此行文字在Netscape Navigator 和 Netscape 6应当闪烁</BLINK>
<DIV STYLE="text-decoration:blink">此行文字在Netscape Navigator和Netscape 6应当闪烁</DIV>
由于Internet Explorer不支持闪烁效果,因此编写浏览器无关的代码最好的办法就是交替设定元素的可视性为显示和隐藏。
分享到:
相关推荐
相反,DHTML更多地被视为一个术语,由网景公司(Netscape)和微软公司在90年代中期提出,用来描述其第四代浏览器所支持的新技术。 - **HTML 4.0**:提供了将格式化信息从HTML文档中分离出来的机制,使得样式可以...
"Script56" 看起来像是对JavaScript版本的一个引用,可能是指 Netscape Navigator 5.6 浏览器支持的JavaScript版本。`script56-2006.chm` 和 `script56-old-cn.chm` 可能包含了这个特定版本的JavaScript特性介绍和...
JavaScript,由 Netscape 公司于1995年首次引入,是一种轻量级的解释型编程语言,主要用于增强网页的用户交互。它允许开发者在用户的浏览器端执行代码,实现诸如表单验证、动态内容更新、页面动画等功能。JavaScript...
**JavaScript** 是一种轻量级的脚本语言,由 Netscape 公司在 1995 年推出,主要用于客户端的网页开发。它不依赖服务器,而是直接在用户的浏览器上运行,从而实现网页的动态化。JavaScript 支持数据类型、变量、函数...
JavaScript是由Netscape公司开发的一种轻量级、解释型的编程语言,主要应用于Web浏览器。它提供了事件处理、DOM操作、AJAX(异步JavaScript和XML)等功能,使得网页可以响应用户交互,改变内容,甚至与服务器进行...
JavaScript是一种广泛应用于网页动态效果和交互性的脚本语言,由Netscape公司开发,现已成为Web开发的标准之一。JavaScriptjs.chm文档可能包括以下内容: 1. **基础语法**:变量声明、数据类型、运算符、流程控制...
6. **DHTML 应用实例**:学习如何通过 JavaScript 和 CSS 实现下拉菜单、滑动面板、轮播图、计时器等常见动态效果。 7. **浏览器兼容性**:由于 JavaScript 和 DHTML 的实现可能存在浏览器差异,了解如何编写跨...
6. **DOM操作**:通过`document`对象获取元素(getElementById、getElementsByTagname、querySelectorAll等)、修改元素属性、文本内容和样式。 7. **AJAX**:异步请求数据的方法,如XMLHttpRequest对象和现代...
**可下载字体**:Netscape支持此功能,确保网页文本始终使用指定字体。 F. **编写脚本**:通过JavaScript等脚本语言改变样式和内容。 G. **对象结构**:隔离网页元素,使得操作一个元素不会影响其他元素。 **二、...
- **Netscape Communicator 4.0**:支持CSS和Layers,但在某些功能上不如IE4.0完善,如动态字体支持较弱。 #### 六、ASP与DHTML的结合 - ASP可以通过内嵌脚本语言(如VBScript、JScript)生成动态HTML内容,结合...
JavaScript由Netscape公司开发,并非SUN公司。 **7. 以下属于DHTML最主要的优点的是()** - **答案:A、动态样式 B、动态定位 D、动态内容** - **解析:** DHTML(Dynamic HTML)利用HTML、CSS和JavaScript技术实现...
JavaScript语法简洁,易于学习,但功能强大,支持面向对象编程、函数式编程和命令式编程等多种编程范式。"JScript.chm"很可能是关于JavaScript的详细指南,包括基本语法、对象、函数、事件处理、DOM操作等方面的内容...
ASP入门教程旨在帮助初学者理解如何将网站从静态转变为动态,提高网站的互动性和效率。...了解和掌握ASP编程,结合DHTML和其他相关技术,可以使网站开发者更高效地维护和更新网站内容,提供更加个性化的用户体验。
- **内容覆盖**:本书详细介绍了如何利用JavaScript和DHTML创建动态网页,包括基本语法、高级编程技巧、实际案例分析等内容。 ### 小结 JavaScript作为一种强大的客户端脚本语言,在过去几十年里经历了起伏不定的...
DX0是一个专为PHP、Perl和Python编程语言设计的开源库,其主要目的是为了生成针对访问者浏览器定制的动态HTML(DHTML)。DHTML是一种在网页上实现动态交互效果的技术,它结合了HTML、CSS和JavaScript,使得网页内容...
Chapter 6: Programming Fundamentals, Part I. Chapter 7: Programming Fundamentals, Part II. Chapter 8: Window and Document Objects. Chapter 9: Forms and Form Elements. Chapter 10: Strings, Math, ...
现在,最常用的是IE和NETSCAPE,由于IE对ASP、ActiveX、DHTML等的良好支持,拥有广泛的使用者,具备良好的兼容性。因此可以选用IE作为兼容标准,同时尽可能兼顾NETSCAPE。 其次,在选择编程语言上,一般都采用HTML...
W3C 目前公布的标准称为 DOM Level 1,与之对应,以前的 Netscape 3.0 和 IE 3.0 上的 DHTML 称为 DOM Level 0。DOM Level 1 分为 DOM Core 和 DOM HTML 两部分,其中 Core 是基本的部分,可以应用于任何类型的文档...