﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-向前走的螃蟹-随笔分类-JavaScript&amp;&amp;Ajax</title><link>http://www.blogjava.net/hhhaaawwwkkk/category/38068.html</link><description>学习笔记 努力奋斗 </description><language>zh-cn</language><lastBuildDate>Sat, 19 Sep 2009 12:26:16 GMT</lastBuildDate><pubDate>Sat, 19 Sep 2009 12:26:16 GMT</pubDate><ttl>60</ttl><item><title>一个简单的JavaScript表单验证框架[转]</title><link>http://www.blogjava.net/hhhaaawwwkkk/archive/2009/09/17/295460.html</link><dc:creator>向前走的螃蟹</dc:creator><author>向前走的螃蟹</author><pubDate>Thu, 17 Sep 2009 07:56:00 GMT</pubDate><guid>http://www.blogjava.net/hhhaaawwwkkk/archive/2009/09/17/295460.html</guid><wfw:comment>http://www.blogjava.net/hhhaaawwwkkk/comments/295460.html</wfw:comment><comments>http://www.blogjava.net/hhhaaawwwkkk/archive/2009/09/17/295460.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hhhaaawwwkkk/comments/commentRss/295460.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhhaaawwwkkk/services/trackbacks/295460.html</trackback:ping><description><![CDATA[<span  style="font-family: monospace; font-size: 13px; white-space: pre-wrap; ">/**
* 通常在我们的HTML页面表单中有大量的数据验证工作，
* 免不了要写很多验证表单的js代码，这是一项非常繁琐
* 枯燥的工作。很多程序员也会经常遗漏这项工作。当然
* 一些JavaEE框架中有一些比较好的验证框架提供给我们
* 使用，但是也是需要很多繁琐的配置，页面查看起来也
* 不是很方便。一般程序员使用的也不多。所以写了这一
* 段JavaScript代码提供给大家使用。算是一个简单的
* JavaScript验证框架吧。使用起来很简单，配合下面几
* 种标签使用，能实现大多数表单验证。
* 1.验证输入框类，包括，text,textarea,password,hidden等
* &lt;textValidate
*		field="username" //对应待验证的输入框name属性
*		lableText="用户名" //验证未通过时提示名称
*		altText="用户名必须是数字，字母，下划线，长度在5-10之间"
*		//验证未通过时的提示文字，可不设置，不设置该属性时使用lableText属性提示
*		isValidate="false" //是否验证
*		min="5" //最小长度
*		max="10" //最大长度
*		dataType="account"&gt; //数据类型，可选值：string(字符串),
*			int(整数),email,account(只能是数字，字母，下划线),
*			phone(国内电话号码),postcode(国内邮政编码),code(国内身份证号码),
*			ip(电脑IP地址),正则表达式字符串
* 2.验证单选和复选框是否必选，包括，radio,checkbox等
* &lt;radioValidate
*		field="sex"
*		altText=""
*		lableText="性别"
*		isValidate="false"&gt;
* 3.验证下拉框是否必选，包括，select等
* &lt;selectValidate
*		field="city"
*		altText=""
*		lableText="所在城市"
*		isValidate="true"
*		noValue="-1"&gt; //下拉框不选择时的默认值
* Author：BluesLee &lt;br&gt;
* CreateDate：2009-8-7 &lt;br&gt;
* Modifier：BluesLee &lt;br&gt;
* ModifyDate：2009-8-10 &lt;br&gt;
* Version:1.0&lt;br&gt;
* Copyright(c)2009 深蓝工作室&lt;br&gt;
* All right reserved.&lt;br&gt;
*
*/
/**
* 表单数据验证&lt;br&gt;
* Author：BluesLee &lt;br&gt;
* CreateDate：2009-8-7 &lt;br&gt;
* Modifier：BluesLee &lt;br&gt;
* ModifyDate：2009-8-10 &lt;br&gt;
* Version:1.0&lt;br&gt;
*
* @param frm,待验证的表单对象
* @return 验证通过返回true,验证失败返回false
*/
function validate(frm){
var textValidate=frm.getElementsByTagName("textValidate");
for(var i=0;i&lt;textValidate.length;i++){
var isValidate=textValidate[i].getAttribute("isValidate");
if(isValidate=="false") {
continue;
}
var lable=textValidate[i].getAttribute("lableText");
var min=textValidate[i].getAttribute("min");
var max=textValidate[i].getAttribute("max");
var datatype=textValidate[i].getAttribute("dataType");
var alt=textValidate[i].getAttribute("altText");
var field=document.getElementsByName(textValidate[i].getAttribute("field"))[0];
if(min &amp;&amp; min.length&gt;0 &amp;&amp; field.value.length&lt;min){
if(alt &amp;&amp; alt.length&gt;0){
alert(alt);
}else{
alert(lable+"不能小于"+min+"位！");
}
if(field.select)field.select();
field.focus();
return false;
}
if(max &amp;&amp; max.length&gt;0 &amp;&amp; field.value.replace(/[^x00-xff]/g,"aa").length&gt;max){
if(alt &amp;&amp; alt.length&gt;0){
alert(alt);
}else{
alert(lable+"不能大于"+max+"位！");
}
if(field.select)field.select();
field.focus();
return false;
}
if(datatype &amp;&amp; datatype.length&gt;0){
if(datatype=="int"){
if(!/^[0-9]+$/g.test(field.value)){
if(field.select)field.select();
field.focus();
if(alt &amp;&amp; alt.length&gt;0){
alert(alt);
}else{
alert(lable+"只能输入整数！");
}
return false;
}
}else if(datatype=="email"){
if(!/^([a-zA-Z0-9_\-\.\+]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/g.test(field.value)){
if(field.select)field.select();
field.focus();
if(alt &amp;&amp; alt.length&gt;0){
alert(alt);
}else{
alert("Email格式不正确！");
}
return false;
}
}else if(datatype=="account"){
if(!/^[a-zA-Z0-9_]+$/g.test(field.value)){
if(field.select)field.select();
field.focus();
if(alt &amp;&amp; alt.length&gt;0){
alert(alt);
}else{
alert(lable+"只能是数字，字母和下划线！");
}
return false;
}
}else if(datatype=="phone"){
if(!/^d{3}-d{8}|d{4}-d{7}$/g.test(field.value)){
if(field.select)field.select();
field.focus();
if(alt &amp;&amp; alt.length&gt;0){
alert(alt);
}else{
alert("电话号码格式不正确，正确格式：0511-4405222 或 021-87888822");
}
return false;
}
}else if(datatype=="postcode"){
if(!/^[1-9]d{5}(?!d)$/g.test(field.value)){
if(field.select)field.select();
field.focus();
if(alt &amp;&amp; alt.length&gt;0){
alert(alt);
}else{
alert("邮政编码不正确");
}
return false;
}
}else if(datatype=="code"){
if(!/^d{15}|d{18}$/g.test(field.value)){
if(field.select)field.select();
field.focus();
if(alt &amp;&amp; alt.length&gt;0){
alert(alt);
}else{
alert("身份证号码不正确");
}
return false;
}
}else if(datatype=="ip"){
if(!/^(((1?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))\.){3}((1?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/g.test(field.value)){
if(field.select)field.select();
field.focus();
if(alt &amp;&amp; alt.length&gt;0){
alert(alt);
}else{
alert("IP地址格式不正确");
}
return false;
}
}else{
if(!new RegExp(datatype,"g").test(field.value)){
if(field.select)field.select();
field.focus();
if(alt &amp;&amp; alt.length&gt;0){
alert(alt);
}else{
alert(lable+"输入格式不正确！");
}
return false;
}
}
}
}
var radioValidate=frm.getElementsByTagName("radioValidate");
for(var i=0;i&lt;radioValidate.length;i++){
var isValidate=radioValidate[i].getAttribute("isValidate");
if(isValidate=="false") {
continue;
}
var lable=radioValidate[i].getAttribute("lableText");
var alt=textValidate[i].getAttribute("altText");
var field=document.getElementsByName(radioValidate[i].getAttribute("field"));
var flag=true;
for(var j=0;j&lt;field.length;j++){
if(field[j].checked){
flag=false;
break;
}
}
if(flag){
if(alt &amp;&amp; alt.length&gt;0){
alert(alt);
}else{
alert(lable+"为必选项！");
}
return false;
}
}
var selectValidate=frm.getElementsByTagName("selectValidate");
for(var i=0;i&lt;selectValidate.length;i++){
var isValidate=selectValidate[i].getAttribute("isValidate");
if(isValidate=="false") {
continue;
}
var lable=selectValidate[i].getAttribute("lableText");
var alt=textValidate[i].getAttribute("altText");
var noValue=selectValidate[i].getAttribute("noValue");
var field=document.getElementsByName(selectValidate[i].getAttribute("field"))[0];
if(field.value==noValue){
if(alt &amp;&amp; alt.length&gt;0){
alert(alt);
}else{
alert(lable+"为必选项！");
}
return false;
}
}
return true;
}</span>
<img src ="http://www.blogjava.net/hhhaaawwwkkk/aggbug/295460.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhhaaawwwkkk/" target="_blank">向前走的螃蟹</a> 2009-09-17 15:56 <a href="http://www.blogjava.net/hhhaaawwwkkk/archive/2009/09/17/295460.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>js-window对象的方法和属性资料 </title><link>http://www.blogjava.net/hhhaaawwwkkk/archive/2009/05/13/270387.html</link><dc:creator>向前走的螃蟹</dc:creator><author>向前走的螃蟹</author><pubDate>Wed, 13 May 2009 05:14:00 GMT</pubDate><guid>http://www.blogjava.net/hhhaaawwwkkk/archive/2009/05/13/270387.html</guid><wfw:comment>http://www.blogjava.net/hhhaaawwwkkk/comments/270387.html</wfw:comment><comments>http://www.blogjava.net/hhhaaawwwkkk/archive/2009/05/13/270387.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hhhaaawwwkkk/comments/commentRss/270387.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhhaaawwwkkk/services/trackbacks/270387.html</trackback:ping><description><![CDATA[<div class="cnt"><font face="新宋体" color="#1169ee" size="4">熟练<span>window</span><span>对象的</span><span>open</span><span>、</span><span>close</span><span>、</span><span>alert</span><span>、</span><span>confirm</span><span>、</span><span>prompt</span><span>、</span><span>setTimeout</span><span>、</span><span>clearTimeout</span><span>、</span><span>setInterval</span><span>、</span><span>clearInterval</span><span>、</span><span>moveBy</span><span>、</span><span>resizeBy</span><span>、</span><span>scrollBy</span><span>方法的使用</span><span> <br />
</span><span>掌握</span><span>window</span><span>对象的</span><span>moveTo</span><span>、</span><span>resizeTo</span><span>、</span><span>scrollTo</span><span>、</span><span>print</span><span>方法的使用</span><span> <br />
</span><span>熟练掌握</span><span>window</span><span>对象的</span><span>status</span><span>、</span><span>location</span><span>、</span><span>name</span><span>、</span><span>self</span><span>、</span><span>opener</span><span>属性的使用　　</span><span>Window</span><span>对象是客户端</span><span>javascript</span><span>最高层对象之一，只要打开浏览器窗口，不管该窗口中是否有打开的网页，当遇到</span><span>BODY</span><span>、</span><span>FRAMESET</span><span>或</span><span>FRAME</span><span>元素时，都会自动建立</span><span>window</span><span>对象的实例。另外，该对象的实例也可由</span><span>window.open()</span><span>方法创建。由于</span><span>window</span><span>对象是其它大部分对象的共同祖先，在调用</span><span>window</span><span>对象的方法和属性时，可以省略</span><span>window</span><span>对象的引用。例如：</span><span>window.document.write()</span><span>可以简写成：</span><span> document.write()</span><span>。　</span> <span>在窗口中觖发本窗口对象的任何方法和属性时可以省去窗口的实例名称。例如给当前的</span><span>myWin</span><span>窗口设置</span><span>status</span><span>属性时，可以只用</span><span>status</span><span>而不用</span><span>myWin.status</span><span>。但是，在事件处理中调用</span><span>location</span><span>属性、</span><span>close()</span><span>方法或</span><span>open()</span><span>方法时必须使用实例名称。</span><span> <br />
6-2-1 window</span><span>对象的方法</span><span> <br />
window</span><span>对象有以下方法：</span><span> <br />
<br />
open <br />
close <br />
alert <br />
confirm <br />
prompt <br />
setTimeout <br />
clearTimeout <br />
setInterval <br />
clearInterval <br />
moveBy <br />
moveTo <br />
resizeBy <br />
resizeTo <br />
scrollBy <br />
scrollTo <br />
find <br />
back <br />
forward <br />
home <br />
stop <br />
print <br />
blur <br />
focus <br />
captureEvent <br />
enableExternalCapture <br />
disableExternalCapture <br />
handleEvent <br />
releaseEvent <br />
routeEvent <br />
scroll <br />
<br />
</span><span>　　</span><span>1. open</span><span>方法</span><span> <br />
</span><span>　　语法格式：</span><span> <br />
<br />
window.open(URL,</span><span>窗口名称</span><span>,</span><span>窗口风格</span><span>) <br />
</span><span>　　功能：打开一个新的窗口，并在窗口中装载指定</span><span>URL</span><span>地址的网页。</span><span> <br />
<br />
</span><span>　　说明：</span><span> <br />
<br />
open</span><span>方法用于打开一个新的浏览器窗口，并在新窗口中装入一个指定的</span><span>URL</span><span>地址；</span><span><br />
open</span><span>方法在打开一个新的浏览器窗口时，还可以指定窗口的名称</span><span>(</span><span>第二个参数</span><span>)</span><span>；</span><span> <br />
open</span><span>方法在打开一个新的浏览器窗口时，还可以指定窗口的风格</span><span>(</span><span>第三个参数</span><span>)</span><span>，</span><span> <br />
<br />
</span><span>窗口风格有以下选项，这些选项可以多选，如果多选，各选项之间用逗号分隔：</span><span> <br />
toolbar</span><span>：指定窗口是否有标准工具栏。当该选项的值为</span><span>1</span><span>或</span><span>yes</span><span>时，表示有标准工具栏，当该选项的值为</span><span>0</span><span>或</span><span>no</span><span>时，表示没有标准工具栏；</span><span> <br />
location</span><span>：指定窗口是否有地址工具栏，选项的值及含义与</span><span>toolbar</span><span>相同；</span><span> <br />
directories</span><span>：指定窗口是否有链接工具栏，选项的值及含义与</span><span>toolbar</span><span>相同；</span><span> <br />
status</span><span>：指定窗口是否有状态栏，选项的值及含义与</span><span>toolbar</span><span>相同；</span><span> <br />
menubar</span><span>：指定窗口是否有菜单，选项的值及含义与</span><span>toolbar</span><span>相同；</span><span> <br />
scrollbar</span><span>：指定当前窗口文档大于窗口时是否有滚动条，选项的值及含义与</span><span>toolbar</span><span>相同；</span><span> <br />
resizable</span><span>：指定窗口是否可改变大小，选项的值及含义与</span><span>toolbar</span><span>相同；</span><span> <br />
width</span><span>：以像素为单位指定窗口的宽度，已被</span><span>innerWidth</span><span>取代；</span><span> <br />
height</span><span>：以像素为单位指定窗口的高度，已被</span><span>innerHeight</span><span>取代；</span><span> <br />
outerWidth</span><span>：以像素为单位指定窗口的外部宽度；</span><span> <br />
outerHeight</span><span>：以像素为单位指定窗口的外部高度；</span><span> <br />
left</span><span>：以像素为单位指定窗口距屏幕左边的位置；</span><span> <br />
top</span><span>：以像素为单位指定窗口距屏幕顶端的位置；</span><span> <br />
alwaysLowered</span><span>：指定窗口隐藏在所有窗口之后，选项的值及含义与</span><span>toolbar</span><span>相同；</span><span> <br />
alwaysRaised</span><span>：指定窗口浮在所有窗口之上，选项的值及含义与</span><span>toolbar</span><span>相同；</span><span><br />
dependent</span><span>：指定打开的窗口为当前窗口的一个子窗口，并随着父窗口的关闭而关闭，选项的值及含义与</span><span>toolbar</span><span>相同；</span><span><br />
hotkeys</span><span>：在没有菜单栏的新窗口中设置安全退出的热键，选项的值及含义与</span><span>toolbar</span><span>相同；</span><span> <br />
innerHeight</span><span>：设定窗口中文档的像素高度；</span><span><br />
innerWidth</span><span>：设定窗口中文档的像素宽度；</span><span><br />
screenX</span><span>：设定窗口距离屏幕左边界的像素长度；</span><span><br />
screenY</span><span>：设定窗口距离屏幕上边界的像素长度；</span><span><br />
titleBar</span><span>：指明标题栏是否在新窗口中可见，选项的值及含义与</span><span>toolbar</span><span>相同；</span><span><br />
z-look</span><span>：指明当窗口被激活时，不能浮在其它窗口之上，选项的值及含义与</span><span>toolbar</span><span>相同。</span><span> <br />
<br />
open</span><span>方法返回的是该窗口的引用。</span><span> <br />
<br />
</span><span>小技巧：该方法经常用于在打开一个网页时自动打开另一个窗口。</span><span> <br />
<br />
</span><span>例</span><span>6-2-1</span><span>：编制一个小程序，它用于在打开当前窗口时自动打开另一个窗口，要</span><span> <br />
<br />
</span><span>求该窗没有标准工具栏、地址栏、链接工具栏、菜单栏，但有状态栏，窗口中打</span><span> <br />
<br />
</span><span>开的网页地址为：</span><span>http://www.dlrtvu.edu.cn</span><span>。</span><span> <br />
<br />
2. close</span><span>方法</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.close() <br />
</span><span>功能：</span><span>close</span><span>方法用于自动关闭浏览器窗口。</span><span> <br />
<br />
3. alert</span><span>方法</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.alert(</span><span>提示字符串</span><span>) <br />
</span><span>功能：弹出一个警告框，在警告框内显示提示字符串文本。</span><span> <br />
<br />
4. confirm</span><span>方法</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.confirm(</span><span>提示字符串</span><span>) <br />
</span><span>功能：显示一个确认框，在确认框内显示提示字符串，当用户单击&#8220;确定&#8221;按钮</span><span> <br />
<br />
</span><span>时该方法返回</span><span>true</span><span>，单击</span><span>&#8220;</span><span>取消</span><span>&#8221;</span><span>时返回</span><span>false</span><span>。</span><span> <br />
<br />
5. prompt</span><span>方法</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.prompt(</span><span>提示字符串，缺省文本</span><span>) <br />
</span><span>功能：显示一个输入框，在输入框内显示提示字符串，在输入文本框显示缺省文</span><span> <br />
<br />
</span><span>本，并等待用户输入，当用户单击&#8220;确定&#8221;按钮时，返回用户输入的字符串，当</span><span> <br />
<br />
</span><span>单击&#8220;取消&#8221;按钮时，返回</span><span>null</span><span>值。</span><span> <br />
<br />
6. setTimeout</span><span>方法</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.setTimeout(</span><span>代码字符表达式</span><span>,</span><span>毫秒数</span><span>) <br />
</span><span>功能：定时设置，当到了指定的毫秒数后，自动执行代码字符表达式。</span><span> <br />
<br />
7. clearTimeout</span><span>方法</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.clearTimeout(</span><span>定时器</span><span>) <br />
</span><span>功能：取消以前的定时设置，其中的参数是用</span><span>setTimeout</span><span>设置时的返回值。</span><span> <br />
<br />
8. setInterval</span><span>方法</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.setInterval(</span><span>代码字符表达式</span><span>,</span><span>毫秒数</span><span>) <br />
</span><span>功能：设定一个时间间隔后</span><span>(</span><span>第二个参数</span><span>)</span><span>，反复执行</span><span>&#8220;</span><span>代码字符表达式</span><span>&#8221;</span><span>的内容</span><span> <br />
<br />
9. clearInterval</span><span>方法</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.clearInterval(</span><span>时间间隔器</span><span>) <br />
</span><span>功能：取消</span><span>setInterval</span><span>设置的定时。其中的参数是</span><span>setInterval</span><span>方法的返回值。</span><span> <br />
<br />
10. moveBy</span><span>方法</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.moveBy(</span><span>水平位移量</span><span>,</span><span>垂直位移量</span><span>) <br />
</span><span>功能：按照给定像素参数移动指定窗口。第一个参数是窗口水平移动的像素，第</span><span> <br />
<br />
</span><span>二个参数是窗口垂直移动的像素。</span><span> <br />
<br />
11.moveTo</span><span>方法</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.moveTo(x,y) <br />
</span><span>功能：将窗口移动到指定的指定坐标</span><span>(x,y)</span><span>处。</span><span> <br />
<br />
12. resizeBy</span><span>方法</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.resizeBy(</span><span>水平</span><span>,</span><span>垂直</span><span>) <br />
</span><span>功能：将当前窗口改变指定的大小</span><span>(x,y)</span><span>，当</span><span>x</span><span>、</span><span>y</span><span>的值大于</span><span>0</span><span>时为扩大，小于</span><span>0</span><span>时</span><span> <br />
<br />
</span><span>为缩小。</span><span> <br />
<br />
13. resizeTo</span><span>方法</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.resizeTo(</span><span>水平宽度</span><span>,</span><span>垂直宽度</span><span>) <br />
</span><span>功能：将当前窗口改变成</span><span>(x,y)</span><span>大小，</span><span>x</span><span>、</span><span>y</span><span>分别为宽度和高度。</span><span> <br />
<br />
14. scrollBy</span><span>方法</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.scrollBy(</span><span>水平位移量，垂直位移量</span><span>) <br />
</span><span>功能：将窗口中的内容按给定的位移量滚动。参数为正数时，正向滚动，否则反</span><span> <br />
<br />
</span><span>向滚动。</span><span> <br />
<br />
15. scrollTo</span><span>方法</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.scrollTo(x,y) <br />
</span><span>功能：将窗口中的内容滚动到指定位置。</span><span> <br />
<br />
16.find</span><span>方法</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.find() <br />
</span><span>功能：当触发该方法时，将弹出一个&#8220;</span><span>find&#8221;(</span><span>查找</span><span>)</span><span>对话窗口，并允许用户在触</span><span> <br />
<br />
</span><span>发</span><span>find</span><span>方法的页面中查找一个字符串。</span><span> <br />
<br />
</span><span>注：该属性在</span><span>IE5.5</span><span>及</span><span>Netscape6.0</span><span>中都不支持。</span><span> <br />
<br />
17. back</span><span>方法</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.back() <br />
</span><span>功能：模拟用户点击浏览器上的&#8220;后退&#8221;按钮，将页面转到浏览器的上一页。</span><span> <br />
<br />
</span><span>说明：仅当当前页面存在上一页时才能进行该操作。</span><span> <br />
<br />
</span><span>注：</span><span>IE5.5</span><span>不支持该方法，</span><span>Netscape6.0</span><span>支持。</span><span> <br />
<br />
18. forward</span><span>方法</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.forward() <br />
</span><span>功能：模拟用户点击浏览器上的&#8220;前进&#8221;按钮，将页面转到浏览器的下一页。</span><span> <br />
<br />
</span><span>说明：仅当当前页面存在下一页时才能进行该操作。</span><span> <br />
<br />
</span><span>注：</span><span>IE5.5</span><span>不支持该方法，</span><span>Netscape6.0</span><span>支持。</span><span> <br />
<br />
19. home</span><span>方法</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.home() <br />
</span><span>功能：模拟用户点击浏览器上的&#8220;主页&#8221;按钮，将页面转到指定的页面上。</span><span> <br />
<br />
</span><span>注：</span><span>IE5.5</span><span>不支持该方法，</span><span>Netscape6.0</span><span>支持。</span><span> <br />
<br />
20. stop</span><span>方法</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.stop() <br />
</span><span>功能：模拟用户点击浏览器上的&#8220;停止&#8221;按钮，终止浏览器的下载操作。</span><span> <br />
<br />
</span><span>注：</span><span>IE5.5</span><span>不支持该方法，</span><span>Netscape6.0</span><span>支持。</span><span> <br />
<br />
21. print</span><span>方法</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.print() <br />
</span><span>功能：模拟用户点击浏览器上的&#8220;打印&#8221;按钮，通知浏览器打开打印对话框打印</span><span> <br />
<br />
</span><span>当前页。</span><span> <br />
<br />
22. blur</span><span>方法</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.blur() <br />
</span><span>功能：从窗口中移出焦点。当与</span><span>focus</span><span>方法合用时必须小心，因为可能导致焦点</span><span> <br />
<br />
</span><span>不断移进移出。</span><span> <br />
<br />
23. focus</span><span>方法</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.focus() <br />
</span><span>功能：使窗口中得到焦点。当与</span><span>blur</span><span>方法合用时必须小心，因为可能导致焦点不</span><span> <br />
<br />
</span><span>断移进移出。</span><span> <br />
<br />
24. captureEvent</span><span>方法</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.captureEvent(Event) <br />
window.captureEvent(</span><span>事件</span><span>1|</span><span>事件</span><span>2|...|</span><span>事件</span><span>n) <br />
</span><span>功能：捕捉指定参数的所有事件。由于能够捕获哪些由本地程序自己处理的事件</span><span> <br />
<br />
</span><span>，所以程序员可以随意定义函数来处理事件。如果有多个事件需要捕捉，各事件</span><span> <br />
<br />
</span><span>之间用管道符&#8220;</span><span>|&#8221;</span><span>隔开。可捕捉的事件类型如下：</span><span> <br />
<br />
Event.ABORT <br />
<br />
Event.BLUR <br />
<br />
Event.CHANGE <br />
<br />
Event.CLICK <br />
<br />
Event.DBLCLICK <br />
<br />
Event.DRAGDROP <br />
<br />
Event.ERROR <br />
<br />
Event.FOCUS <br />
<br />
Event.KEYDOWN <br />
<br />
Event.KEYPRESS <br />
<br />
Event.KEYUP <br />
<br />
Event.LOAD <br />
<br />
Event.MOUSEDOWN <br />
<br />
Event.MOUSUEMOVE <br />
<br />
Event.MOUSEOUT <br />
<br />
Event.MOUSEOVER <br />
<br />
Event.MOUSEUP <br />
<br />
Event.MOVE <br />
<br />
Event.RESET <br />
<br />
Event.RESIZE <br />
<br />
Event.SELECT <br />
<br />
Event.SUBMIT <br />
<br />
Event.UNLOAD <br />
<br />
25. enableExternalCapture</span><span>事件</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.enableExternalCapture(event) <br />
</span><span>功能：</span><span>enableExternalCapture</span><span>方法用于捕捉通过参数传入的外部事件。</span><span> <br />
<br />
26. disableExternalCapture</span><span>事件</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.disableExternalCapture() <br />
</span><span>功能：取消</span><span>enableExternalCapture</span><span>方法的设置，终止对外部事件的捕捉。</span><span> <br />
<br />
27. handleEvent</span><span>事件</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.handleEvent(event) <br />
</span><span>功能：触发指定事件的事件处理器。</span><span> <br />
<br />
28. releaseEvent</span><span>事件</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.releaseEvent(event) <br />
window.releaseEvent(</span><span>事件</span><span>1|</span><span>事件</span><span>2|...|</span><span>事件</span><span>n) <br />
</span><span>功能：释放通过参数传入的已被捕捉的事件，这些事件是由</span><span> <br />
<br />
window.captureEvent</span><span>方法设置的，可释放的事件与</span><span>captureEvent</span><span>相同。</span><span> <br />
<br />
29. routeEvent</span><span>事件</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.releaseEvent(event) <br />
</span><span>功能：把被捕捉类型的所有事件转交给标准事件处理方法进行处理，可转交的事</span><span> <br />
<br />
</span><span>件与</span><span>captureEvent</span><span>相同。</span><span> <br />
<br />
30 scroll</span><span>事件</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.scroll(X</span><span>坐标</span><span>,Y</span><span>坐标</span><span>) <br />
</span><span>功能：将窗口移动到指定的坐标位置。</span><span> <br />
<br />
6-2-2 window</span><span>对象的属性</span><span> <br />
window</span><span>对象具有如下属性：</span><span> <br />
<br />
status <br />
<br />
statusbar <br />
<br />
statusbar.visible <br />
<br />
defaultstatus <br />
<br />
location <br />
<br />
locationbar <br />
<br />
locationbar.visible <br />
<br />
self <br />
<br />
name <br />
<br />
closed <br />
<br />
frames <br />
<br />
frames.length <br />
<br />
length <br />
<br />
document <br />
<br />
history <br />
<br />
innerHeight <br />
<br />
innerWidth <br />
<br />
menubar <br />
<br />
menubar.visible <br />
<br />
opener <br />
<br />
outerHeight <br />
<br />
outerWidth <br />
<br />
pageXOffset <br />
<br />
pageYOffset <br />
<br />
parent <br />
<br />
personalbar <br />
<br />
personalbar.visible <br />
<br />
scrollbar <br />
<br />
scrollbar.visible <br />
<br />
toolbar <br />
<br />
toolbar.visible <br />
<br />
top <br />
<br />
1. status</span><span>属性</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.status=</span><span>字符串</span><span> <br />
</span><span>功能：设置或给出浏览器窗口中状态栏的当前显示信息。</span><span> <br />
<br />
</span><span>小技巧：可以使用该属性设置浏览器窗口状态栏信息。</span><span> <br />
<br />
2. statusbar</span><span>属性</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.statusbar.</span><span>属性</span><span> <br />
</span><span>功能：</span><span>statusbar</span><span>属性本身也是一个对象，用于访问它自已的</span><span>visible</span><span>属性从而确</span><span> <br />
<br />
</span><span>定状态栏是否可见。</span><span> <br />
<br />
</span><span>注：</span><span>IE5.5</span><span>浏览器不支持该属性。</span><span> <br />
<br />
3. statusbar.visible</span><span>属性</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.statusbar.visible <br />
</span><span>功能：检查状态栏是否可见，如果可见则返回</span><span>true</span><span>，反之返回</span><span>false</span><span>。</span><span> <br />
<br />
</span><span>注：</span><span>IE5.5</span><span>浏览器不支持该属性。</span><span> <br />
<br />
4. defaultstatus</span><span>属性</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.defaultstatus[=</span><span>字符串</span><span>] <br />
</span><span>功能：</span><span>defaultstatus</span><span>属性值是浏览器窗中状态栏的默认显示信息。</span><span> <br />
<br />
5.location</span><span>属性</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.location=URL <br />
</span><span>功能：给出当前窗口的</span><span>URL</span><span>信息或指定打开窗口的</span><span>URL</span><span>。</span><span> <br />
<br />
6. locationbar</span><span>属性</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.locationbar.</span><span>属性</span><span> <br />
</span><span>功能：</span><span>locationbar</span><span>属性也可以看成是一个子对象，这个属性用来获取它自已的</span><span> <br />
<br />
visible</span><span>属性来确定位置栏是否可见。</span><span> <br />
<br />
</span><span>到目前为止，该属性只有一个子属性：</span><span>visible</span><span>。</span><span> <br />
<br />
</span><span>注：</span><span>IE5.5</span><span>不支持该属性。</span><span> <br />
<br />
7. locationbar.visible</span><span>属性</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.locationbar.visible <br />
</span><span>功能：返回位置栏是否可见，如果可见返回</span><span>true</span><span>，反之返回</span><span>false</span><span>。</span><span> <br />
<br />
</span><span>注：</span><span>IE5.5</span><span>不支持该属性。</span><span> <br />
<br />
8. self</span><span>属性</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.self.</span><span>方法</span><span> <br />
window.self.</span><span>属性</span><span> <br />
</span><span>功能：该属性包含当前窗口的标志，利用这个属性，可以保证在多个窗口被打开</span><span> <br />
<br />
</span><span>的情况下，正确调用当前窗口内的函数或属性而不会发生混乱。</span><span> <br />
<br />
9. name</span><span>属性</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.name=</span><span>名称</span><span> <br />
</span><span>功能：返回窗口名称，这个名称是由</span><span>window.open()</span><span>方法创建新窗口时给定的。</span><span> <br />
<br />
</span><span>在</span><span>javascript1.0</span><span>版本中，这个属性只能用于读取窗口名称，而到了</span><span> <br />
<br />
javascript1.1</span><span>版本时，可以用这个属性给一个不是用</span><span>window.open()</span><span>方法创建的</span><span> <br />
<br />
</span><span>窗口指定一个名称。</span><span> <br />
<br />
10. closed</span><span>属性</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.closed <br />
</span><span>功能：</span><span>closed</span><span>属性用于返回指定窗口的实例是否已经关闭，如果关闭，返回</span><span>true <br />
<br />
</span><span>，反之返回</span><span>flase</span><span>。</span><span> <br />
<br />
11. frames</span><span>属性</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.frames["</span><span>框架名称</span><span>"] <br />
window.frames[</span><span>数值</span><span>] <br />
</span><span>功能：</span><span>frames</span><span>属性是一个数组，用来存储文档中每一个由元素创建的子窗口</span><span>(</span><span>框</span><span> <br />
<br />
</span><span>架</span><span>)</span><span>实例，其中的下标即可以是次序号也可以是用</span><span>FRAME</span><span>元素的</span><span>NAME</span><span>属性指定的名</span><span> <br />
<br />
</span><span>称来得到并使用。</span><span> <br />
<br />
12. frames.length</span><span>属性</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.frames.length <br />
</span><span>功能：</span><span>frames.length</span><span>属性用于给出文档中子窗口</span><span>(</span><span>框架</span><span>)</span><span>实例的个数。</span><span> <br />
<br />
13. length</span><span>属性</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.length <br />
</span><span>功能：</span><span>length</span><span>属性返回一个窗口内的子窗口数目，该属性与</span><span> <br />
<br />
window.frame.length</span><span>属性的值相同。</span><span> <br />
<br />
14. document</span><span>属性</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.document.</span><span>事件</span><span> <br />
window.document.</span><span>方法</span><span> <br />
window.document.</span><span>属性</span> <span><br />
</span><span>功能：</span><span>window</span><span>对象的子对象</span><span>document</span><span>是</span><span>javascript</span><span>的核心对象，在脚本中遇到</span><span> <br />
<br />
BODY</span><span>元素时创建一个实例。</span><span> <br />
<br />
15. history</span><span>属性</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.history[</span><span>数值</span><span>] <br />
window.history.</span><span>方法</span><span>() <br />
window.history.</span><span>属性</span><span> <br />
window</span><span>对象的子对象</span><span>history</span><span>是</span><span>javascript</span><span>的核心对象之一，该属性包含了一个</span><span> <br />
<br />
</span><span>已访问过页面的名称和</span><span>URL</span><span>的数组。</span><span> <br />
<br />
16. innerHeight</span><span>属性</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.innerHeight=</span><span>数值</span><span> <br />
</span><span>功能：返回或指定浏览器窗口中文档的像素高度，这个高度不包括任何工具栏和</span><span> <br />
<br />
</span><span>组成窗口的页面修饰高度。</span><span> <br />
<br />
</span><span>注：</span><span>IE5.5</span><span>不支持该属性。</span><span> <br />
<br />
17. innerWidth</span><span>属性</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.innerHeight=</span><span>数值</span><span> <br />
</span><span>功能：返回或指定浏览器窗口中文档的像素宽度，这个宽度不包括任何工具栏和</span><span> <br />
<br />
</span><span>组成窗口的页面修饰宽度。</span><span> <br />
<br />
</span><span>注：</span><span>IE5.5</span><span>不支持该属性。</span><span> <br />
<br />
18. menubar</span><span>属性</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.menubar.</span><span>属性</span><span> <br />
</span><span>功能：</span><span>menubar</span><span>属性也可以看成是一个子对象，这个属性用来获取它自已的</span><span> <br />
<br />
visible</span><span>属性来确定菜单栏是否可见。</span><span> <br />
<br />
</span><span>到目前为止，该属性只有一个子属性：</span><span>visible</span><span>。</span><span> <br />
<br />
</span><span>注：</span><span>IE5.5</span><span>不支持该属性。</span><span> <br />
<br />
19. menubar.visible</span><span>属性</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.menubar.visible <br />
</span><span>功能：</span><span>menubar.visible</span><span>属性用于返回菜单栏是否可见，如果可见返回</span><span>true</span><span>，反</span><span> <br />
<br />
</span><span>之返回</span><span>false</span><span>。</span><span> <br />
<br />
</span><span>注：</span><span>IE5.5</span><span>不支持该属性。</span><span> <br />
<br />
20. opener</span><span>属性</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.opener <br />
window.opener.</span><span>方法</span><span> <br />
window.opener.</span><span>属性</span><span> <br />
</span><span>功能：</span><span>opener</span><span>属性与打开该窗口的父窗口相联系，当访问子窗口中</span><span>operer</span><span>属性时</span><span> <br />
<br />
</span><span>，返回的是父窗口。通过该属性，可以使用父窗口对象中的方法和属性。</span><span> <br />
<br />
21. outerHeight</span><span>属性</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.outerHeight <br />
</span><span>功能：</span><span>outerHeight</span><span>属性用于访问浏览器窗口的像素高度，该高度包括工具栏和</span><span> <br />
<br />
</span><span>装饰边的高度。</span><span> <br />
<br />
</span><span>注：</span><span>IE5.5</span><span>不支持该属性。</span><span> <br />
<br />
22. outerWidth</span><span>属性</span> <span><br />
</span><span>语法格式：</span><span> <br />
<br />
window.outerWidth <br />
</span><span>功能：</span><span>outerWidth</span><span>属性用于访问浏览器窗口的像素宽度，该宽度包括工具栏和装</span><span> <br />
<br />
</span><span>饰边的宽度。</span><span> <br />
<br />
</span><span>注：</span><span>IE5.5</span><span>不支持该属性。</span><span> <br />
<br />
23. pageXOffset</span><span>属性</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.pageXOffset=</span><span>数值</span><span> <br />
</span><span>功能：指定浏览器窗口中文档左上角在窗口中的当前水平像素位置。在利用</span><span> <br />
<br />
moveTo</span><span>移动之前，可以通过该属性来决定是否需要移动窗口。因为该属性返回了</span><span> <br />
<br />
</span><span>可见文档相对整个页面的当前位置。</span><span> <br />
<br />
</span><span>注：</span><span>IE5.5</span><span>不支持该属性。</span><span> <br />
<br />
24. pageYOffset</span><span>属性</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.pageYOffset=</span><span>数值</span><span> <br />
</span><span>功能：指定浏览器窗口中文档左上角在窗口中的当前垂直像素位置。在利用</span><span> <br />
<br />
moveTo</span><span>移动之前，可以通过该属性来决定是否需要移动窗口。因为该属性返回了</span><span> <br />
<br />
</span><span>可见文档相对整个页面的当前位置。</span><span> <br />
<br />
</span><span>注：</span><span>IE5.5</span><span>不支持该属性。</span><span> <br />
<br />
25. parent</span><span>属性</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.parent.frames[</span><span>数值</span><span>] <br />
window.parent.framesName <br />
</span><span>功能：访问各个子窗口</span><span>(</span><span>多框架</span><span>)</span><span>所在的父窗口。</span><span> <br />
<br />
26. personalbar</span><span>属性</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.personalbar.</span><span>属性</span><span> <br />
</span><span>功能：</span><span>personalbar</span><span>属性本身也是一个对象，用于访问其自身的</span><span>visible</span><span>属性来确</span><span> <br />
<br />
</span><span>定个人栏是否可见。</span><span> <br />
<br />
</span><span>注：</span><span>IE5.5</span><span>不支持该属性。</span><span> <br />
<br />
27. personalbar.visible</span><span>属性</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.personalbar.visible <br />
</span><span>功能：确定个人栏是否可见，如果可见则返回</span><span>true</span><span>，反之返回</span><span>false</span><span>。</span><span> <br />
<br />
</span><span>注：</span><span>IE5.5</span><span>不支持该属性。</span><span> <br />
<br />
28. scrollbars</span><span>属性</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.scrollbars.</span><span>属性</span><span> <br />
</span><span>功能：</span><span>scrollbars</span><span>属性本身也是一个对象，用于访问其自身的</span><span>visible</span><span>属性来确</span><span> <br />
<br />
</span><span>定滚动栏是否可见。</span><span> <br />
<br />
</span><span>注：</span><span>IE5.5</span><span>不支持该属性。</span><span> <br />
<br />
29. scrollbars.visible</span><span>属性</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.scrollbars.visible <br />
</span><span>功能：</span><span>scrollbars.visible</span><span>用于确定滚动栏是否可见，如果可见则返回</span><span>true</span><span>，反</span><span> <br />
<br />
</span><span>之返回</span><span>false</span><span>。</span><span> <br />
<br />
</span><span>注：</span><span>IE5.5</span><span>不支持该属性。</span><span> <br />
<br />
30. toolbar</span><span>属性</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.toolbar.</span><span>属性</span><span> <br />
</span><span>功能：</span><span>toolbar</span><span>属性本身也是一个对象，用于访问它自已的</span><span>visible</span><span>属性从而确定</span><span> <br />
<br />
</span><span>工具栏是否可见。</span><span> <br />
<br />
</span><span>注：</span><span>IE5.5</span><span>不支持该属性。</span><span> <br />
<br />
31. toolbar.visible</span><span>属性</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.toolbar.visible <br />
</span><span>功能：</span><span>toolbar.visible</span><span>属性用于检查工具栏是否可见，如果可见则返回</span><span>true</span><span>，</span><span> <br />
<br />
</span><span>反之返回</span><span>false</span><span>。</span><span> <br />
<br />
</span><span>注：</span><span>IE5.5</span><span>不支持该属性。</span><span> <br />
<br />
32. top</span><span>属性</span><span> <br />
</span><span>语法格式：</span><span> <br />
<br />
window.top.frames[</span><span>数值</span><span>] <br />
window.top.frameName <br />
window.top.</span><span>方法</span><span>() <br />
window.top.</span><span>属性</span><span> <br />
</span><span>功能：</span><span>window</span><span>对象的</span><span>top</span><span>属性用于包含所有装入浏览器的子窗口</span><span>(</span><span>多框架</span><span>)</span><span>的最顶层窗口的信息。<br />
<br />
<a id="AjaxHolder_ctl01_TitleUrl" href="http://www.cnblogs.com/zengwei/archive/2007/04/24/725589.html"><strong>getAttribute()方法</strong></a><strong> <br />
</strong>●一份文档就是一棵节点树。<br />
<br />
&nbsp;&nbsp;●节点分为不同的类型：元素节点、属性节点和文本节点等。<br />
<br />
&nbsp;&nbsp;●getElementById()方法将返回一个对象，该对象对应着文档里的一个特定的元素节点。<br />
<br />
&nbsp;&nbsp;●getElementsByTagName()方法将返回一个对象数组，它们分别对应着文档里的一个特定的元素节点。<br />
<br />
&nbsp;&nbsp;●这些节点中的每个都是一个对象。<br />
<br />
接下来，我们将向大家介绍几个与这些对象相关联的属性和方法。<br />
<br />
3.4.1　getAttribute()方法<br />
<br />
至此，我们已经向大家介绍了两种检索特定元素节点的办法：一种是使用getElementById()方法，另一种是使用getElementsByTagName()方法。在找到那个元素后，我们就可以利用getAttribute()方法把它的各种属性的值查询出来。<br />
<br />
getAttribute()方法是一个函数。它只有一个参数——你打算查询的属性的名字：<br />
<br />
object.getAttribute(attribute)<br />
不过，getAttribute()方法不能通过document对象调用，这与我们此前介绍过的其他方法不同。我们只能通过一个元素节点对象调用它。<br />
<br />
例如，你可以把它与getElementsByTagName()方法结合起来，去查询每个&lt;p&gt;元素的title属性，如下所示：<br />
var&nbsp;text=document.getElementsByTagName("p")<br />
for&nbsp;(var&nbsp;i=0;i&lt;text.length;i++)<br />
{<br />
alert(text[i].getAttribute("title"));<br />
<br />
}<br />
如果把上面这段代码插入到前面给出的&#8220;购物清单&#8221;示例文档的末尾，并在Web浏览器里重新加载这个页面，屏幕上将弹出一个显示着文本消息&#8220;a&nbsp;gentle&nbsp;reminder&#8221;的alter对话框。<br />
<br />
在&#8220;购物清单&#8221;文档里只有一个带有title属性的&lt;p&gt;元素。假如这份文档还有一个或更多个不带title属性的&lt;p&gt;元素，则相应的getAttribute("title")调用将返回null。null是JavaScript语言中的空值，其含义是&#8220;你说的这个东西不存在&#8221;。如果你们想亲自验证一下这件事，请先把下面这段文本插入到&#8220;购物清单&#8221;文档中的现有文本段落之后：<br />
&lt;p&gt;This&nbsp;is&nbsp;just&nbsp;test&lt;/p&gt;<br />
然后重新加载这个页面。这一次，你们将看到两个alter对话框，而第二个对话框将是一片空白或者是只显示着单词&#8220;null&#8221;——具体情况要取决于你的Web浏览器将如何显示null值。<br />
<br />
可以修改我们的脚本，让它只在title属性存在时才弹出一条消息。我们将增加一条if语句来检查getAttribute()方法的返回值是不是null。趁着这个机会，我们还增加了几个变量以提高脚本的可读性：<br />
var&nbsp;ts=document.getElementsByTagName("li");<br />
for&nbsp;(var&nbsp;i=0;&nbsp;i&lt;ts.length;i++)<br />
{text=ts[i].getAttribute("title");<br />
<br />
<br />
if(text!=null)<br />
{<br />
alert(text)<br />
}<br />
}<br />
现在，如果重新加载这个页面，你们将只会看到一个显示着&#8220;a&nbsp;gentle&nbsp;reminder&#8221;消息的alter对话框<br />
我们甚至可以把这段代码缩得更短一些。当检查某项数据是否是null值时，我们其实是在检查它是否存在。这种检查可以简化为直接把被检查的数据用做if语句的条件。if&nbsp;(something)与if&nbsp;(something&nbsp;!=&nbsp;null)完全等价，但前者显然更为简明。此时，如果something存在，则if语句的条件将为真；如果something不存在，则if语句的条件将为假。<br />
<br />
具体到这个例子，只要我们把if&nbsp;(title_text&nbsp;!=&nbsp;null)替换为if&nbsp;(title_text)，我们就可以得到更简明的代码。此外，为了进一步增加代码的可读性，我们还可以趁此机会把alter语句与if语句写在同一行上，这可以让它们更接近于我们日常生活中的英语句子：<br />
var&nbsp;ts=document.getElementsByTagName("li");<br />
for&nbsp;(var&nbsp;i=0;&nbsp;i&lt;ts.length;i++)<br />
{text=ts[i].getAttribute("title");<br />
<br />
<br />
if(text)&nbsp;alert(text)<br />
<br />
}<br />
3.4.2　setAttribute()方法<br />
<br />
我们此前介绍给大家的所有方法都只能用来检索信息。setAttribute()方法与它们有一个本质上的区别：它允许我们对属性节点的值做出修改。<br />
<br />
类似于getAttribute()方法，setAttribute()方法也是一个只能通过元素节点对象调用的函数，但setAttribute()方法需要我们向它传递两个参数：<br />
<br />
obiect.setAttribute(attribute,value)<br />
在下面的例子里，第一条语句将把id属性值是purchase的元素检索出来，第二条语句将把这个元素的title属性值设置为a&nbsp;list&nbsp;of&nbsp;goods：<br />
<br />
var&nbsp;shopping=document.getElementById("purchases")<br />
shopping.setAttribute("title","a&nbsp;list&nbsp;of&nbsp;goods")<br />
我们可以利用getAttribute()方法来证明这个元素的title属性值确实发生了变化：<br />
var&nbsp;shopping=document.getElementById("purchases");<br />
alert(shopping.getAttribute("title"));<br />
shopping.setAttribute("title","a&nbsp;list&nbsp;of&nbsp;goods");<br />
alert(shopping.getAttribute("title"));<br />
上面这些语句将在屏幕上弹出两个alert对话框：第一个alter对话框出现在setAttribute()方法被调用之前，它将是一片空白或显示着单词&#8220;null&#8221;；第二个出现在title属性值被设置之后，它将显示着&#8220;a&nbsp;list&nbsp;of&nbsp;goods&#8221;消息。<br />
<br />
在上例中，我们设置了一个现有节点的title属性，但这个属性原先并不存在。这意味着我们发出的setAttribute()调用实际完成了两项操作：先把这个属性创建出来，然后再对其值进行设置。如果我们把setAttribute()方法用在元素节点的某个现有属性上，这个属性的当前值将被覆盖。<br />
<br />
在&#8220;购物清单&#8221;示例文档里，&lt;p&gt;元素已经有了一个title属性，这个属性的值是a&nbsp;gentle&nbsp;reminder。我们可以用setAttribute()方法来改变它的当前值：<br />
<br />
&lt;script&nbsp;type="text/javascript"&gt;<br />
var&nbsp;ts=document.getElementsByTagName("li");<br />
for&nbsp;(var&nbsp;i=0;&nbsp;i&lt;ts.length;i++)<br />
{<br />
var&nbsp;text=ts[i].getAttribute("title");<br />
alert(ts[i].getAttribute("title"))<br />
if(text)<br />
{<br />
ts[i].setAttribute("title","我会成功！")<br />
alert(ts[i].getAttribute("title"))<br />
}<br />
}<br />
上面这段代码将先从文档里把已经带有title属性的&lt;p&gt;元素全部检索出来，然后把它们的title属性值全部修改为brand&nbsp;new&nbsp;title&nbsp;text。具体到&#8220;购物清单&#8221;文档，属性值a&nbsp;gentle&nbsp;reminder将被覆盖。<br />
<br />
这里有一个非常值得关注的细节：通过setAttribute()方法对文档做出的修改，将使得文档在浏览器窗口里的显示效果和/或行为动作发生相应的变化，但我们在通过浏览器的view&nbsp;source（查看源代码）选项去查看文档的源代码时看到的仍将是原来的属性值——也就是说，setAttribute()方法做出的修改不会反映在文档本身的源代码里。这种&#8220;表里不一&#8221;的现象源自DOM的工作模式：先加载文档的静态内容、再以动态方式对它们进行刷新，动态刷新不影响文档的静态内容。这正是DOM的真正威力和诱人之处：对页面内容的刷新不需要最终用户在他们的浏览器里执行页面刷新操作就可以实现。 </span></font></div>
<img src ="http://www.blogjava.net/hhhaaawwwkkk/aggbug/270387.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhhaaawwwkkk/" target="_blank">向前走的螃蟹</a> 2009-05-13 13:14 <a href="http://www.blogjava.net/hhhaaawwwkkk/archive/2009/05/13/270387.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>