??xml version="1.0" encoding="utf-8" standalone="yes"?>日韩三级中文字幕,999国产精品,国产区在线观看成人精品http://www.aygfsteel.com/hszdz/category/13099.htmlzh-cnThu, 01 Mar 2007 02:45:54 GMTThu, 01 Mar 2007 02:45:54 GMT60 能预览F(tun)lash也可以预览图?/title><link>http://www.aygfsteel.com/hszdz/articles/68708.html</link><dc:creator>爪哇之家</dc:creator><author>爪哇之家</author><pubDate>Sat, 09 Sep 2006 06:25:00 GMT</pubDate><guid>http://www.aygfsteel.com/hszdz/articles/68708.html</guid><description><![CDATA[ <p><input type="file" name="file1" style="width:300'" class="tx1" value="" onchange="PreviewImg(this);"><br /> <br /> <div style="width:400px;height:300px;border:1px solid #aaaaaa;overflow:auto" id="previewDiv"><br /> </div><br /><script language="javascript"></p> function PreviewImg(obj){<br />   var div = document.getElementById("previewDiv");<br />   if(obj.value=="" || div.childNodes.length>0){<br />     div.removeChild(div.firstChild);<br />     if(obj.value=="")return;<br />   }<br />   var ext = obj.value.substring(obj.value.lastIndexOf(".")+1)<br />   div.appendChild(getFlash(obj.value,ext));<br /> }<br /> function getFlash(src,ext){<br />  var img;<br />  switch(ext.toLowerCase()){<br />   case "jpg":<br />   case "jpeg":<br />   case "bmp":<br />   case "gif":<br />   case "png":<br />    img = document.createElement("img");<br />    break;<br />   case "swf":<br />    img = document.createElement("embed");<br />    img.type="application/x-shockwave-flash";<br />    img.width=400;<br />    img.height=300;<br />    break;<br />  }<br />  img.src=src;<br />  return img;<br /> }<br /> </script><img src ="http://www.aygfsteel.com/hszdz/aggbug/68708.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/hszdz/" target="_blank">爪哇之家</a> 2006-09-09 14:25 <a href="http://www.aygfsteel.com/hszdz/articles/68708.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>|页常用技?JavaScript)http://www.aygfsteel.com/hszdz/articles/63425.html爪哇之家爪哇之家Mon, 14 Aug 2006 03:20:00 GMThttp://www.aygfsteel.com/hszdz/articles/63425.html1. oncontextmenu="window.event.returnValue=false" 彻底屏蔽鼠标右?
<table border oncontextmenu=return(false)><td>no</table> 可用于Table

2. <body onselectstart="return false"> 取消选取、防止复?

3. onpaste="return false" 不准_脓(chung)

4. oncopy="return false;" oncut="return false;" 防止复制

5. <link rel="Shortcut Icon" href="favicon.ico"> IE地址栏前换成自己的图?

6. <link rel="Bookmark" href="favicon.ico"> 可以在收藏夹中显C出你的图标

7. <input style="ime-mode:disabled"> 关闭输入?

8. 永远都会(x)带着框架
<script language="JavaScript"><!--
if (window == top)top.location.href = "frames.htm"; //frames.htm为框架网?
// --></script>

9. 防止被hframe
<SCRIPT LANGUAGE=JAVASCRIPT><!-- 
if (top.location != self.location)top.location=self.location;
// --></SCRIPT>

10. |页不能被另存?
<noscript><iframe src=*.html></iframe></noscript> 

11. <input type=button value=查看|页源代码?
onclick="window.location = "view-source:"+ "http://www.pconline.com.cn"">

12.删除时确?
<a href="javascript:if(confirm("实要删除吗?"))location="boos.asp?&areyou=删除&page=1"">删除</a> 

13. 取得控g的绝对位|?
//Javascript
<script language="Javascript">
function getIE(e){
var t=e.offsetTop;
var l=e.offsetLeft;
while(e=e.offsetParent){
t+=e.offsetTop;
l+=e.offsetLeft;
}
alert("top="+t+"/nleft="+l);
}
</script>

//VBScript
<script language="VBScript"><!--
function getIE()
dim t,l,a,b
set a=document.all.img1
t=document.all.img1.offsetTop
l=document.all.img1.offsetLeft
while a.tagName<>"BODY"
set a = a.offsetParent
t=t+a.offsetTop
l=l+a.offsetLeft
wend
msgbox "top="&t&chr(13)&"left="&l,64,"得到控g的位|?
end function
--></script>

14. 光标是停在文本框文字的最?
<script language="javascript">
function cc()
{
var e = event.srcElement;
var r =e.createTextRange();
r.moveStart("character",e.value.length);
r.collapse(true);
r.select();
}
</script>
<input type=text name=text1 value="123" onfocus="cc()">

15. 判断上一늚来源
javascript:
document.referrer

16. 最化、最大化、关闭窗?
<object id=hh1 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11"> 
<param name="Command" value="Minimize"></object>
<object id=hh2 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11"> 
<param name="Command" value="Maximize"></object>
<OBJECT id=hh3 classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">
<PARAM NAME="Command" VALUE="Close"></OBJECT>
<input type=button value=最化 onclick=hh1.Click()>
<input type=button value=最大化 onclick=hh2.Click()>
<input type=button value=关闭 onclick=hh3.Click()>
本例适用于IE

17.屏蔽功能键Shift,Alt,Ctrl
<script>
function look(){ 
if(event.shiftKey) 
alert("止按Shift?"); //可以换成ALT CTRL

document.onkeydown=look; 
</script>

18. |页不会(x)被缓?
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
或?lt;META HTTP-EQUIV="expires" CONTENT="0">

19.怎样让表单没有凹凸感Q?
<input type=text style="border:1 solid #000000"> 
?
<input type=text style="border-left:none; border-right:none; border-top:none; border-bottom: 

1 solid #000000"></textarea>

20.<div><span>&<layer>的区别? 
<div>(division)用来定义大段的页面元素,?x)生{行?
<span>用来定义同一行内的元素,?lt;div>的唯一区别是不产生转行 
<layer>是ns的标讎ͼie不支持,相当?lt;div>

21.让弹出窗口L在最上面:
<body onblur="this.focus();">

22.不要滚动? 
让竖条没? 
<body style="overflow:scroll;overflow-y:hidden"> 
</body> 
让横条没? 
<body style="overflow:scroll;overflow-x:hidden"> 
</body> 
两个都去掉?更简单了 
<body scroll="no"> 
</body> 

23.怎样L囄链接点击后,囄周围的虚U?
<a href="#" onFocus="this.blur()"><img src="logo.jpg" border=0></a>

24.?sh)子邮g处理提交表单
<form name="form1" method="post" action="mailto:****@***.com" enctype="text/plain"> 
<input type=submit>
</form>

25.在打开的子H口h父窗口的代码里如何写Q?
window.opener.location.reload()

26.如何讑֮打开面的大?
<body onload="top.resizeTo(300,200);">
打开面的位|?lt;body onload="top.moveBy(300,200);">

27.在页面中如何加入不是满铺的背景图?拉动面时背景图不动 
<STYLE> 
body 
{background-image:url(logo.gif); background-repeat:no-repeat; 
background-position:center;background-attachment: fixed} 
</STYLE> 

28. (g)查一D字W串是否全由数字l成
<script language="Javascript"><!--
function checkNum(str){return str.match(//D/)==null}
alert(checkNum("1232142141"))
alert(checkNum("123214214a1"))
// --></script>

29. 获得一个窗口的大小
document.body.clientWidth; document.body.clientHeight

30. 怎么判断是否是字W?
if (/[^/x00-/xff]/g.test(s)) alert("含有汉字");
else alert("全是字符");

31.TEXTAREA自适应文字行数的多?
<textarea rows=1 name=s1 cols=27 onpropertychange="this.style.posHeight=this.scrollHeight">
</textarea>
32. 日期减去天数{于W二个日?
<script language=Javascript>
function cc(dd,dadd)
{
//可以加上错误处理
var a = new Date(dd)
a = a.valueOf()
a = a - dadd * 24 * 60 * 60 * 1000
a = new Date(a)
alert(a.getFullYear() + "q? + (a.getMonth() + 1) + "? + a.getDate() + "?)
}
cc("12/23/2002",2)
</script>

33. 选择了哪一个Radio
<HTML><script language="vbscript">
function checkme()
for each ob in radio1
if ob.checked then window.alert ob.value
next
end function
</script><BODY>
<INPUT name="radio1" type="radio" value="style" checked>Style
<INPUT name="radio1" type="radio" value="barcode">Barcode
<INPUT type="button" value="check" onclick="checkme()">
</BODY></HTML>

34.脚本怸出错
<SCRIPT LANGUAGE="JavaScript"> 
<!-- Hide 
function killErrors() { 
return true; 

window.onerror = killErrors; 
// --> 
</SCRIPT>

35.ENTER键可以让光标Ud下一个输入框
<input onkeydown="if(event.keyCode==13)event.keyCode=9">

36. (g)某个网站的链接速度Q?
把如下代码加?lt;body>区域?
<script language=Javascript>
tim=1
setInterval("tim++",100)
b=1
var autourl=new Array()
autourl[1]="www.njcatv.net"
autourl[2]="javacool.3322.net"
autourl[3]="www.sina.com.cn"
autourl[4]="www.nuaa.edu.cn"
autourl[5]="www.cctv.com"
function butt(){
document.write("<form name=autof>")
for(var i=1;i<autourl.length;i++)
document.write("<input type=text name=txt"+i+" size=10 value=试中…?gt; =?lt;input type=text 
name=url"+i+" size=40> =?lt;input type=button value=GO 

onclick=window.open(this.form.url"+i+".value)><br>")
document.write("<input type=submit value=h></form>")
}
butt()
function auto(url){
document.forms[0]["url"+b].value=url
if(tim>200)
{document.forms[0]["txt"+b].value="链接时"}
else
{document.forms[0]["txt"+b].value="旉"+tim/10+"U?}
b++
}
function run(){for(var i=1;i<autourl.length;i++)document.write("<img src=http://"+autourl+"/"+Math.random()+" width=1 height=1 

onerror=auto("http://"+autourl+"")>")}
run()</script>

37. 各种样式的光?
auto Q标准光?
default Q标准箭?
hand Q手形光?
wait Q等待光?
text QI形光?
vertical-text Q水qI形光?
no-drop Q不可拖动光?
not-allowed Q无效光?
help Q?帮助光标
all-scroll Q三角方向标
move Q移动标
crosshair Q十字标
e-resize
n-resize
nw-resize
w-resize
s-resize
se-resize
sw-resize

38.面q入和退出的Ҏ(gu)
q入面<meta http-equiv="Page-Enter" content="revealTrans(duration=x, transition=y)">
推出面<meta http-equiv="Page-Exit" content="revealTrans(duration=x, transition=y)"> 
q个是页面被载入和调出时的一些特效。duration表示Ҏ(gu)的持l时_(d)以秒为单位。transition表示使用哪种Ҏ(gu)Q取gؓ(f)1-23:
  0 矩Ş~小 
  1 矩Ş扩大 
  2 圆Ş~小
  3 圆Ş扩大 
  4 下到上刷斊W?
  5 上到下刷?
  6 左到叛_斊W?
  7 叛_左刷斊W?
  8 竖百叶窗
  9 横百叶窗 
  10 错位横百叶窗 
  11 错位竖百叶窗
  12 Ҏ(gu)散?
  13 左右C间刷斊W?
  14 中间到左叛_?
  15 中间C?
  16 上下C闾b?
  17 右下到左?
  18 右上到左下?
  19 左上到右下?
  20 左下到右?
  21 横条 
  22 竖条 
  23 以上22U随机选择一U?

39.在规定时间内跌{
<META http-equiv=V="REFRESH" content="5;URL=http://www.51js.com"> 

40.|页是否被检?
<meta name="ROBOTS" content="属性?>
  其中属性值有以下一?
  属性gؓ(f)"all": 文g被(g)索,且页上链接可被查询;
  属性gؓ(f)"none": 文g不被(g)索,而且不查询页上的链接Q?
  属性gؓ(f)"index": 文g被(g)索;
  属性gؓ(f)"follow": 查询上的链接;
  属性gؓ(f)"noindex": 文g不检索,但可被查询链接;
  属性gؓ(f)"nofollow": 文g不被(g)索,但可查询上的链接?

41.JAVASCRIPT判断IE是否开启COOKIE

< script type = " text/javascript " >

      
function  CookieEnable()
      {
        
var  result = false ;
        
if (navigator.cookiesEnabled)
          
return   true ;
        document.cookie 
=   " testcookie=yes; " ;
        
var  cookieSet  =  document.cookie;
        
if  (cookieSet.indexOf( " testcookie=yes " >   - 1 )
          result
= true ;
        document.cookie 
=   "" ;
        
return  result;
      }

      
if ( ! CookieEnable())
      {
        alert(
" 对不P(zhn)的览器的Cookie功能被禁用,请开?/span> " );
      }
</ script >

 

匚w中文字符的正则表辑ּQ?[\u4e00-\u9fa5]

匚w双字节字W?包括汉字在内)Q[^\x00-\xff]

应用Q计字W串的长度(一个双字节字符长度?QASCII字符?Q?br />
String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;}

匚wI的正则表辑ּQ\n[\s| ]*\r

匚wHTML标记的正则表辑ּQ?<(.*)>.*<\/\1>|<(.*) \/>/

匚w首尾I格的正则表辑ּQ?^\s*)|(\s*$)

应用Qjavascript中没有像vbscript那样的trim函数Q我们就可以利用q个表达式来实现Q如下:(x)

String.prototype.trim = function()
{
return this.replace(/(^\s*)|(\s*$)/g, "");
}

利用正则表达式分解和转换IP地址Q?br />
下面是利用正则表辑ּ匚wIP地址QƈIP地址转换成对应数值的JavascriptE序Q?br />
function IP2V(ip)
{
re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匚wIP地址的正则表辑ּ
if(re.test(ip))
{
return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
}
else
{
throw new Error("Not a valid IP address!")
}
}

不过上面的程序如果不用正则表辑ּQ而直接用split函数来分解可能更单,E序如下Q?br />
var ip="10.100.20.168"
ip=ip.split(".")
alert("IP值是Q?+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))

匚wEmail地址的正则表辑ּQ\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

匚w|址URL的正则表辑ּQhttp://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?

利用正则表达式去除字串中重复的字W的法E序Q?br />[注:(x)此程序不正确Q原因见本脓(chung)回复]

var s="abacabefgeeii"
var s1=s.replace(/(.).*\1/g,"$1")
var re=new RegExp("["+s1+"]","g")
var s2=s.replace(re,"")
alert(s1+s2) //l果为:(x)abcefgi

我原来在CSDN上发贴寻求一个表辑ּ来实现去除重复字W的Ҏ(gu)Q最l没有找刎ͼ
q是我能惛_的最单的实现Ҏ(gu)。思\是用后向引用取出包括重复的字符Q?br />再以重复的字W徏立第二个表达式,取到不重复的字符Q两者串q?br />q个Ҏ(gu)对于字符序有要求的字符串可能不适用?br />
得用正则表达式从URL地址中提取文件名的javascriptE序Q如下结果ؓ(f)page1

s="http://www.9499.net/page1.htm"
s=s.replace(/(.*\/){0,}([^\.]+).*/ig,"$2")
alert(s)

利用正则表达式限制网表单里的文本框输入内容Q?br />
用正则表辑ּ限制只能输入中文Qonkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"

用正则表辑ּ限制只能输入全角字符Q?onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"

用正则表辑ּ限制只能输入数字Qonkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"

用正则表辑ּ限制只能输入数字和英文:(x)onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"



爪哇之家 2006-08-14 11:20 发表评论
]]>
javascript常用到的一些方?/title><link>http://www.aygfsteel.com/hszdz/articles/58583.html</link><dc:creator>爪哇之家</dc:creator><author>爪哇之家</author><pubDate>Mon, 17 Jul 2006 07:49:00 GMT</pubDate><guid>http://www.aygfsteel.com/hszdz/articles/58583.html</guid><description><![CDATA[     摘要: javascript常用到的一些方?   function  openBigWin(temUrl) {  var  Wid;  var  Hei;  ...  <a href='http://www.aygfsteel.com/hszdz/articles/58583.html'>阅读全文</a><img src ="http://www.aygfsteel.com/hszdz/aggbug/58583.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/hszdz/" target="_blank">爪哇之家</a> 2006-07-17 15:49 <a href="http://www.aygfsteel.com/hszdz/articles/58583.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Prototype.jshttp://www.aygfsteel.com/hszdz/articles/58424.html爪哇之家爪哇之家Sun, 16 Jul 2006 06:27:00 GMThttp://www.aygfsteel.com/hszdz/articles/58424.html阅读全文

爪哇之家 2006-07-16 14:27 发表评论
]]>
JavaScript中的l承(?http://www.aygfsteel.com/hszdz/articles/58420.html爪哇之家爪哇之家Sun, 16 Jul 2006 05:30:00 GMThttp://www.aygfsteel.com/hszdz/articles/58420.html     Prototype

    在?a href="../../flyingis/archive/2006/07/03/56324.html" target="_blank">JavaScript中的对象(?》一文中Q我们了解到Mprototype的属性和Ҏ(gu)都会(x)被传递到该类的所有实例中Q利用这一Ҏ(gu),使用prototype也能实现l承?
 
function ClassA()  {
}


ClassA.prototype.id
= 1998;
ClassA.prototype.sayId
=function(){
   alert(
this.id);
}
;

functionClassB(){
}


ClassB.prototype
=newClassA();
ClassB.prototype.name
="";
ClassB.prototype.sayName
=function(){
   alert(
this.name);
}

    需要注意的是,q种实现l承的方法不能将参数传入到ClassA的构造器中,是一个缺陗ClassB的所有属性和Ҏ(gu)必需在将ClassB? prototype对象指向ClassA的实例之后进行附倹{这样做是因为,prototype指向一个新的对象,在此之前prototype的属性和? 法都被覆盖销毁?br />
    对代码进行测试:(x)

var  obj1 = new ClassA();
var  obj2 = new ClassB();
obj1.id
= 1998;
obj2.id
= 2000;
obj2.name
="(zhn)尼奥运?/span>";
obj1.sayId();  
//输出"1998"
obj2.sayId();  //输出"1998"
obj2.sayName();  //输出"(zhn)尼奥运?

alert(obj2
instanceofClassA);  //输出"true"
alert(obj2 instanceofClassB);  //输出"true"

    在上qC码中可以看出Q用prototype实现l承Qinstanceof操作W出C另外的用途,在用构造v定义cd现承时Qinstanceof不会(x)出现q种效果。但是用prototype不能支持多重l承?br />  
    在?a href="../../flyingis/archive/2006/07/03/56324.html" target="_blank">JavaScript中的对象(?》和上文的论qC可以了解刎ͼ使用构造器定义cd现承和使用prototype实现l承均存在各自的~陷Q要避免出现q些情况Q只有将两者؜合用?br />
    混合Ҏ(gu)

    ?a href="../../flyingis/archive/2006/07/03/56324.html" target="_blank">JavaScript中的对象(?》一文中曄Q创Z个类的最x法,是用构造器的方法去定义属性,使用prototype定义Ҏ(gu)。在l承中同样如此?br />
function ClassA(id) {
  
this .id = id;
}


ClassA.prototype.sayId
= function() {
   alert(
this.id);
}
;

function ClassB(id, name) {
   ClassA.call(
this, id);
  
this.name =name;
}


ClassB.prototype
=  new ClassA();
ClassB.prototype.sayName
=function(){
   alert(
this.name);
}


爪哇之家 2006-07-16 13:30 发表评论
]]>
JavaScript中的l承(?http://www.aygfsteel.com/hszdz/articles/58419.html爪哇之家爪哇之家Sun, 16 Jul 2006 05:29:00 GMThttp://www.aygfsteel.com/hszdz/articles/58419.html   l承是面向对象语a基本特征之一Q通过l承可以父cLh的特性遗传到子类。ECMAScript中的l承不像Java、C++{语a那么明显Q直接通过关键字来实现Q通常它是通过模拟方式来实现承功能的Qƈ且实现方式有多种?br />
    在承中引入this关键字,使用构造器Ҏ(gu)定义cL实现l承。一个构造器是一个函敎ͼ因此可以父cȝ构造器作ؓ(f)子类的一个方法用ƈq行调用?br />
function ClassA(id) {
  
this .id = id;
  
this .sayId = function() {
     alert(
this.id);
   }
;
}


function ClassB(id, name) {
  
this .newMethod = ClassA;
  
this .newMethod(id);
  
delete this.newMethod;

  
this.name= name;
  
this.sayName= function(){
     alert(
this.name);
   }
;
}

    注意Q子cM所有新的属性和Ҏ(gu)都必需在删除newMethod后引入,否则Q可能存在用父类的属性和Ҏ(gu)重写子类属性和Ҏ(gu)的危险。另外,使用q种Ҏ(gu) q可以实现多重承,此时如果两个父类h相同的属性或Ҏ(gu)Ӟ最后的cd有优先。由于这U承方法比较流行,ECMAScriptW三版引入了两个 Function对象Qcall()和apply()?br />
    call()

    call()Ҏ(gu)是最接近上述l承方式的方法,它的W一个参数是this指向的对象,所有的其他参数都直接传到function?br />

function sayMessage(first, last) {
   alert(first
+ this.logic +last);
}
;

varobj =new Object();
obj.logic
= "or";

sayMessage.call(obj,
"Coffee ""Tea");  //输出"Coffee or Tea"

    用call()Ҏ(gu)来实现承,只需要this.newMethod相关的三行代码?br />

function ClassB(id, name) {
  
  //this.newMethod = ClassA;
  //this.newMethod(id);
  //delete this.newMethod;
  ClassA.call(this, id);  //this指向ClassB的对?/span>

  
this.name =name;
  
this.sayName = function() {
     alert(
this.name);
   }
;
}

    apply()

    apply()Ҏ(gu)需要两个参敎ͼ(x)this所指向的对象,和传到function的由参数l成的array?br />
function sayMessage(first, last)  {
  alert(first 
+ this.logic +last);
}
;

var obj = new Object();
obj.logic 
= "or";

sayMessage.apply(obj, 
new Array("Coffee "" Tea"));  //输出"Coffee or Tea"
  
    同样Q?apply() 实现l承可以通过如下Ҏ(gu)实现?br />
function ClassB(id, name) {
  
//this.newMethod = ClassA;
  //this.newMethod(id);
  //delete this.newMethod;
  ClassA.apply(thisnew Array(id));  //this指向ClassB的对?/span>

  
this.name = name;
  
this.sayName = function() {
    alert(
this.name);
  }
;
}

    当父cL造器的参数和子类构造器参数的顺序一致时Q可以用子cȝarguments对象作ؓ(f)W二个参数。否则,必需创徏一个array来传递参敎ͼ或是使用call()Ҏ(gu)?/font>


爪哇之家 2006-07-16 13:29 发表评论
]]>
JavaScript中的对象(?http://www.aygfsteel.com/hszdz/articles/58417.html爪哇之家爪哇之家Sun, 16 Jul 2006 05:28:00 GMThttp://www.aygfsteel.com/hszdz/articles/58417.htmlhttp://www.aygfsteel.com/hszdz/comments/58417.htmlhttp://www.aygfsteel.com/hszdz/articles/58417.html#Feedback0http://www.aygfsteel.com/hszdz/comments/commentRss/58417.htmlhttp://www.aygfsteel.com/hszdz/services/trackbacks/58417.html    面向对象语言需要具备三U基本特征:(x)l承QInheritanceQ、多?(Polymorphism) 、封装(Encapsulation and AggregationQ。和Java 、C++ {语a一PECMAScript 被认为是面向对象的,因ؓ(f)它同时支持这些特征?br /> 
var  obj  =   new  Object();

    该语句创Z一个对象,当构造函数没有参数时Q可以省略后面的括号。我们通常是通过对象的引用来q行对象操作Q当一个对象的引用为nullӞ ECMAScript启动垃圑֛收程序删除该对象Q释攑ֆ存。当一个对象存在多个引用时Q需要将所有的引用讄为null来释放该对象所占用的空间?br />
早期l定和动态绑?br />
    早期l定是指在对象被实例化之前对象的属性和Ҏ(gu)已经被定义,使得~译器或解释器能够提前编译机器码。Java和VB支持q种Ҏ(gu),但ECMAScript q强类型,不支持早期绑定?br />
    动态绑定是指编译器或解释器在运行时才知道该对象的具体类型,之前q不?x)检查,只会(x)判断q些属性和Ҏ(gu)是否得到该对象的支持。ECMAScriptҎ(gu)有的变量使用动态绑定?br />
对象cd

2.1  原始对象

    ECMA-262 定义不受L环境影响的ECMAScript支持的Q意对象ؓ(f)原始对象Q简而言之,原始对象是ECMA-262定义的引用类型,比较常用的有 Object、Function、String、Boolean、Number、Array、Date。?br />
    Array

   
Array 有许多常用的Ҏ(gu)Q很多和JavacMQ在此不作介l。需要注意的是,使用push()和pop()两个Ҏ(gu)Q可以将Array看作一个栈Q遵循后q先? 规则QLIFOQ。用shift()和push()两个Ҏ(gu)QArray对象卛_看作是一个队列,遵@后进后出的规则(LILOQ。splice()? 法非常有用,它轻杄实现了链表的一些基本功能,如删除数据项、插入数据、替换数据?

    Date

   
ECMAScript 中的DatecLZJava早期版本中的java.util.DatecȝQ它可以_表示1970q??日(格林威治旉Q前?85616q的? 意时间。Date是少有的几个重写了toString()和valueOf()Ҏ(gu)Qƈ且两个方法ƈ不相同的cRvalueOf()通常表示_到毫U 的时_(d)toString()通常q回个性化的时间表C方法,例如相同的时间在不同览器下昄的效果可能不一栗?

2.2  Build-in对象

    Build-in 对象除了具备原始对象的基本特性外Q它?ECMAScript E序开始运行时可以用,因此可以说Q?Build-in 对象是原始对象。目?ECMA-262 只定义了两个 Build-in 对象Q?Global ?Math ?

    Global

   
在ECMAScript 里,没有函数可以单独存在Q所有的函数都必L某个对象的方法。如isNan()、isFinite()、parseInt()、parseFloat ()、encodeURI()、encodeURIComponent()、decodeURI()、decodeURIComponent() {均是Global对象的方法,除此之外QGlobal对象q包括一些属性?

    Math

   
Math中有许多属性和Ҏ(gu)可以用于数学计算Q和Java中的比较cM?

2.3  Host 对象

    除了原始对象和Build-in对象外,其他对象均是Host对象。所有的BOM和DOM对象均被认ؓ(f)是Host对象?

cL员的讉K方式

   
? 面向对象语言E序设计中,常见的类成员讉K方式有public、protected和private。在ECMAScript中,只有public一U访 问方式,对象中所有的属性和Ҏ(gu)都是可见的,因此Q在E序设计旉要额外注意系l安全性的问题。在没有合理的程序规范之前,E序员在~写 ECMAScript代码Ӟ通常使用一定规范的命名方式来说明该属性或Ҏ(gu)是私有的Q仅仅是说明而已Q实际上q是公有的)(j)Q例如在名称前后加上下划U, 或只在名U前加下划线。另外,在ECMAScript中没有staticҎ(gu)?

4  this
关键?/font>

    this关键字是ECMAScript中一个非帔R要的概念Q通常在对象的Ҏ(gu)中用?br />
function  whatFruit()  {
  alert(
this .color);
}


var  table1  =   new  Object;
table1.fruit 
=   " apple " ;
table1.whatFruit 
=  whatFruit;
var  table2  =   new  Object;
table2.fruit 
=   " pear " ;
table2.whatFruit 
=  whatFruit;
table1.whatFruit();  
// 输出apple
table2.whatFruit();   // 输出pear

    当一个变量前面没有对象或this来引用时QECMAScript认ؓ(f)该变量是一个本地的或全局变量Q于是在本地和全局中去搜寻该变量,如果最后仍没有扑ֈQ将?x)在alert中输出null?/font>


爪哇之家 2006-07-16 13:28 发表评论
]]>
JavaScript中的对象(?http://www.aygfsteel.com/hszdz/articles/58418.html爪哇之家爪哇之家Sun, 16 Jul 2006 05:28:00 GMThttp://www.aygfsteel.com/hszdz/articles/58418.html 5  自定义类和对?/strong>

5.1  工厂Ҏ(gu)

    在ECMAScript中创建工厂方法,q回一个特定类型的对象Q以此实C码的z适用?br />
function createFruit() {
  
var tempFruit = new Object;
  tempFruit.name 
= "apple";
  tempFruit.number 
= 5;
  tempFruit.showName 
= function() {
    alert(
this.name);
  }
;
return tempFruit;
}


var Fruit1 = creatFruit();
var Fruit2 = creatFruit();

    在createFruit()中可以加入Ş参来传入参数的倹{随着ECMAScript不断被规范化Q这U创建对象的Ҏ(gu)已不再流行,一部分原因是语法上 的,一部分原因是功能上的,如每个对象的实例都拥有属于自qshowNameҎ(gu)Q给内存理带来一定的开销?br />
5.2  构造函?br />
    选择一个类名,W一个字母大写,该类名即是构造函数的名称。创Z个构造函数和工厂Ҏ(gu)比较cMQ不同的是需要用关键字new来创建对象的引用。用构造函数的方式来创建对象和使用工厂Ҏ(gu)有着相同的弊端?br />
function Fruit(name, number) {
  
this.name = name;
  
this.number = number;
  
this.showName = function() {
    alert(
this.name);
  }
;
}


var Fruit1 = new Fruit("apple"5);
var Fruit2 = new Fruit("pear"3);

5.3  使用 Prototype

    使用prototype属性可以用来创建新的对象,首先需要一个空的构造函数徏立类的名Uͼ然后所有的属性和Ҏ(gu)都直接分配到prototype属性中?br />
function Fruit() {
}

Fruit.prototype.name 
= "apple";
Fruit.prototype.number 
= 5;
Fruit.prototype.showName 
= function() {
  alert(
this.name);
}
;

var fruit1 = new Fruit();
var fruit2 = new Fruit();

    但是Q这样同样存在一些缺炏V首先,构造函C没有参数Q给初始化带来一些麻?ch),其次Q当一个属性指向的是一个对象而非Ҏ(gu)Ӟ该对象会(x)被所有的实例所׃nQQ何一Ҏ(gu)动都?x)?jing)响到其他对象引用的用?br />
5.4  混合使用工厂Ҏ(gu)和Prototype

q个概念很简单:(x)使用构造函数定义所有除Ҏ(gu)外的属性,使用 prototype 定义对象的方法。这h个方法只?x)被创徏一ơ,每个对象都能拥有自己对象实例的属性?br />
function Fruit(name, number) {
  
this.name = name;
  
this.number = number;
  
this.owner = new Array("Jerry""Terry");
}

Fruit.prototype.showName 
= function() {
  alert(
this.name);
}
;

var Fruit1 = new Fruit("apple"5);
var Fruit2 = new Fruit("pear"3);

5.5  动?prototype

    单来_(d)q种Ҏ(gu)是使用了一个标识符来判?prototype 是否已经被指向某个方法,从而保证这些方法只?x)被创徏q指向一ơ?br />
5.6  混合工厂Ҏ(gu)

    q种Ҏ(gu)和经典的工厂Ҏ(gu)?qing)构造函数方法在对象Ҏ(gu)内存理上存在同L(fng)问题Q一般不使用该方法,除了某些Ҏ(gu)情况QXML in JavaScript中有q样的例子)(j)?br />
6  修改对象

    使用prototype对象可以对对象进行修攏V除了用戯定义的对象外QECMAScript原始对象也有prototype属性。直接?prototype可以l对象创建新的方法?br />
Number.prototype.toHexString = function() {
  
return this.toString(16);
}
;
var iNum = 10;
alert(iNum.toHexString());  
//输出A

    另外Q用prototype可以L修改已有的方法,让方法名指向新的Ҏ(gu)。需要注意的是,指向新的Ҏ(gu)后,原有的方法不再被M对象使用Q将?x)被垃? 回收器销毁,使得原有Ҏ(gu)不再存在。比较安全的解决办法是,建立一个新的引用来保存原有的方法,然后再将原方法覆盖?br />
    比较Ҏ(gu)的是QECMAScript中创建对象,在对象引用被创徏后,可以l对象加入新的方法,q且可以立即在对象的引用中用。这? ECMAScript的一个特性,但不推荐q样使用Q以免带来不必要的麻?ch),例如阅读理解、文档资料等?/font>


爪哇之家 2006-07-16 13:28 发表评论
]]>
JavaScript 调试工具http://www.aygfsteel.com/hszdz/articles/58416.html爪哇之家爪哇之家Sun, 16 Jul 2006 05:27:00 GMThttp://www.aygfsteel.com/hszdz/articles/58416.htmlJavaScript代码看v来L要比Java、C#q多,可能是自p不熟(zhn)JavaScript~程Q因此一ƾ优U的JavaScript调试器就昑־格外重要。目前在|络和书上见到最多的有:(x)

    Microsoft Script Debugger: 集成在IE中的一Ƒ־原始的调试工P具备基本的调试功能,除了可以用于调试客户端脚本,q能调试在Microsoft IIS上运行的服务器端脚本。该工具命o(h)H口是基于文本的Q针对VBScript和IE环境q行调试?x)更加适用?
 
    Firefox JavaScript Console: 可以记录JavaScript中出现的所有警告和错误Q诊断出大多数错误。工h较简单实用?
 
    Venkman: 一个基于Mozilla的浏览器的JavaScript调试环境Q是Mozilla览器的一个扩展。VenkmanZMozilla JavaScript调试APIQjs/jsdQ,js/jsd API 构成?Netscape JavaScript Debugger 1.1的基QNetscape览?.xpȝ都提供了q个调试工具。Venkman是目前比较流行的JavaScript调试工具?br />
    相关下蝲Q?br />
    http://www.hacksrus.com/~ginda/venkman/
    上面最新的版本?.9.85Q对于Firefox只能支持1.5以前的版本?br />
    https://dwr.dev.java.net/files/documents/2427/22010/venkman-0.9.85.jw2.xpi
    venkman-0.9.85.jw2.xpi是venkman-0.9.85xpi的修改版本,可以支持Firefox 1.5.0。?br />
    https://addons.mozilla.org/firefox/216/
    在Mozilla官方站点上,venkman有了另外的一个名U——JavaScript DebuggerQ已l发布了0.9.87版本Q支持Firefox 0.9-3.0QMozilla 1.0-1.8QThunderbird 0.9-3.0的所有版本浏览器?br />    除了官方|站外,该工L(fng)扩展安装也可以通过链接
    http://www.aygfsteel.com/Files/flyingis/javascript_debugger-0.9.87.rarq行本地下蝲?br /> 
    另外有一些JavaScript专用IDEQ有兴趣可以试用一下:(x)
 
    Cardinal JavaScript IDE:
    http://home.earthlink.net/~mafriedman/ide/

    JavaScript IDE for Eclipse:
    http://www.basement.org/archives/2005/09/js_eclipse_javascript_ide for.html

    JavaScript IDE(׃n软g):
    http://www.downloadjunction.com/product/software/42264/index.html


爪哇之家 2006-07-16 13:27 发表评论
]]>ECMAScript基础http://www.aygfsteel.com/hszdz/articles/58415.html爪哇之家爪哇之家Sun, 16 Jul 2006 05:26:00 GMThttp://www.aygfsteel.com/hszdz/articles/58415.html   JavaScript的核心之一ECMAScript的语aҎ(gu)和Java、C、Perl都有许多怼之处Q其中不特性都是从q些语言借鉴而来Q同时它们之间也存在许多差异。下面列举一些ECMAScript的基本特性?br />
    --和Java一PECMAScript区分大小写,注释的格式相同,通过{}定代码块,原始数据cd存储在堆栈,对象的引用存储在堆中
    --ECMAScript是一U松散的语言QECMAScript通过var操作W声明变量,q且不限cdQ例如var n = 25Q那么n是数字cdQvar n = "string" Q那么n是Stringcd
    --在每一行代码后Q可以不写分PECMAScript自动认ؓ(f)该行的末ؓ(f)该行代码的最后;ECMAScript中的变量可以不用初始化,在幕后系l将自动完成初始化操?br />    --同一变量可以赋予不同cd的数据;变量的第一个字W只能是字母、下划线? Q其他的字符可以是下划线?、或L的字母、数字、字W?br />    --和其他语a一P变量最好遵循驼C写法Q或Pascal表示法、或匈牙利表C法
    --和大多数语言不同的是Q?ECMAScript 变量在用之前可以不必声明,pȝ?x)自动将该变量声明?f)全局变量Q例如var m =
" Good " ; n = m + " Morning " ; alert(n)输出l构?/font> " Good Morning "
    --在大多数语言里,String是对象,在ECMAScript中却是原始数据类?br />
    原始数据cd
 
    ECMAScript原始数据cd有五U:(x)Undefined、Null、Boolean、Number、String?br />
    typeof—判断变量和值的数据cdQ通常有undefined、boolean、number、string、object五种cd?br />    Undefined—当变量被声明但没有初始化,或函数没有明返回一个值的时候,该变量或函数即ؓ(f) Undefined cd?br />    Null—undefined是null的一U派生,当代表一个对象的g存在Ӟ该对象返回null?br />    Boolean—包含两个|true and false Q?false不等?Q但0可以转换为false ?br />    Number—可以定?2位整型数据或64位Q点型数据。定义数字类型变量时Q在数字前加0即ؓ(f)八进Ӟ?x为十六进Ӟ它们计算后返回的l果l一? 十进制。通过var f = 1.0可以定义一个Q点类型变量,有意思的是,当f被用于计之前,它实际是? Stringcd存储的。当点cd数据很大或很时Q可以前后移动六位)(j)Q将使用E表示法来表示点数据Q最大可以存?7位数据。另外, isFinite()Ҏ(gu)可以判断一个数值是否有限,isNaN()Ҏ(gu)可以判断一个数据是非数字类型?br />    String—String在ECMAScript中是原始数据cdQƈ且是唯一没有I间大小限制的数据类型。和Java不同的是Qvar s =
" javascript " 和var s = 'javascript'均是合法的表C方法?br />
    数据转换
 
    在不同数据类型之间{换是M一门编E语a的一个重要特性,ECMAScript提供了一pd单的Ҏ(gu)来实现数据的转换Q大多数数据cd都提供了单的 转换Ҏ(gu)Q对于复杂的转换则有一些全局Ҏ(gu)来完成,不管是哪一U方法,ECMAScript中数据{换都非常单?

    Boolean、number和string数据cd是原始数据类型,但它们同时是伪对象(在ECMAScript中伪对象到底该怎么解释Q运行机制如? q不清楚Q有人知道请l予解答Q,拥有自己的属性和Ҏ(gu)Q可以通过toString()Ҏ(gu)来实现stringcd的{换。ECMAScript定义所? 的对象,不管是伪对象q是真实的对象,都可以实现toString()Ҏ(gu)Qstring被列Z对象的行列,自然也拥有toString()Ҏ(gu)。将? 字类型数据{换ؓ(f)string的时候,可以?toString() Ҏ(gu)中加???6参数Q来实现不同q制的数据输出,例如var n = 10; alert(n.toString(2))输出?010Qalert(n.toString(8))输出?2Qn.toString()? n.toString(10)相同?
 
    ECMAScript提供了两U方法来实现stringcd转化为数字类型的Ҏ(gu)QparseInt()和parseFloat()。其他类型{换将?x)返?NaNQNot a NumberQ?br />
    Type Casting

    ECMAScript数据cd的{换通常可以通过三个Ҏ(gu)来实玎ͼ(x)Boolean(value)、Number(value)和String(value)Q这样通常?x)生一些非预期的结果?br />
    Boolean

var b1 = Boolean( "" );  // false–empty string
var b2 = Boolean( " hi " );  // true–non-empty string
var b3 = Boolean( 100 );  // true–non-zero number
var b4 = Boolean( null );  // false-null
var b5 = Boolean( 0 );  // false-zero
var b6 = Boolean( new Object());  // true–object

    Number

Number( false 0
Number(
true )   1
Number(undefined) NaN
Number(
null 0
Number(
" 5.5 " 5.5
Number(
" 56 " 56
Number(
" 5.6.7 " ) NaN
Number(
new
Object()) NaN
Number(
100 100

    String

    String()能实现所有类型数据的直接转换Q和使用toString()不同的是QString()能够null或undefined数据转换为string?br />
    引用cd

    ECMAScript 实际上ƈ没有传统意义上的c,只是通过定义对象来等同于其他语言中的c,q一Ҏ(gu)q比较含p,以后可能?x)明白,在文中还是以“类”来说明?br />
var  ob  =   new  Object();

    以上定义了一个Object对象的实例,q种语法和Java比较cM。当有参数的时候需要括h引用Q当不存在参数时Q括号可以去掉。由? ECMAScript语言比较松散Q不是前面所属的基础语法Q还是后面将提到的语法知识,我们都应该尽量按照一定的书写规范来约定自q代码格式Q而不 应充分发挥语a松散的特炏V?br />
    Objectc?br />
    ObjectcdJava里的java.lang.ObjectcL较相|它是ECMAScript中其他所有类的基c,它具有如下属性:(x)

    constructor—徏立对象的函数的一个引用,对于Objectc而言Q该引用指向本地Object()Ҏ(gu)?br />    prototype—对象里prototype对象的一个引用倹{?br />
    Object cL有的Ҏ(gu)Q?br />
    hasOwnProperty(property)—判断property属性是否存在于对象中,property数据cd为string
    isPrototypeOf(object)?判断一个对象是否是另一对象?prototype
    propertyIsEnumerable(property)?判断所l出的属性能否?for 语句列D出来
    toString()—返回对象的原始cdstring
    valueOf()—返回对象合适的原始|对于多数c而言Q返回的值和toString()相同
    Objectcȝ每一个属性和Ҏ(gu)都被其他的类所重写

    Booleanc?br />
    定义Ҏ(gu)var ob = new Boolean(true); ob是Boolean原始数据cd的一个引用。在使用Boolean对象q程中,需要注意,所有的对象?x)自动{变ؓ(f)trueQ因此var ob1 = new Boolean(false);  var ob2 = ob1 && true; 最后ob2的值是trueQ非false。一般情况下Q用Boolean原始数据cd可以避免q种情况?br />
    Numberc?br />
    定义Ҏ(gu)var o = new Number(15);
    获得原始数据的值var n = o.valueOf();

    NumbercL一些ؓ(f)数字cd的值特别设计的Ҏ(gu)Q?br />
alert(o.toFixed( 2 ));   // 输出15.00
alert(o.toExponential( 1 ));   // 输出1.5e+1

    在无法确定?toFixed q是 toExponential 的时候,可以使用 toPrecision Ҏ(gu)来获得取|(x)

alert(o.toPrecision( 1 ));   // 输出 2e+1
alert(o.toPrecision( 2 ));   // 输出 15
alert(o.toPrecision( 3 ));   // 输出 15.0

    Stringc?br />
    StringcL一U复杂引用类型,q里仅列Z些常见的Ҏ(gu)Q其中不都是模仿java.lang.StringQ?br />
var  s  =   new  String( " Good Morning " );
alert(s.valueOf() 
==  s.toString());   // 输出true

alert(s.length);   // 输出12
alert(s.charAt( 1 ));   // 输出o
var  sr  =  s.concat( "  ! " ); alert(sr);   // 输出Good morning !
alert(s.indexOf( " o " );   // 输出1
alert(s.lastIndexOf( " o " );   // 输出6
alert(s.localeCompare(Good morning));   // 输出0
alert(s.localeCompare(Apple));   // 输出1
alert(s.localeCompare(House));   // 输出-1
alert(s.slice( 2 ));   //  输出od morning
alert(s.substring( 2 ));   //  输出od morning
alert(s.slice( 2 - 5 ));   //  输出od mo
alert(s.substring( 2 - 5 ));   // 输出Go
alert(s.toUpperCase());   // 输出GOOD MORNING
alert(s.toLowerCase());   // 输出good morning

    另外Q所有StringcȝҎ(gu)同样可以用于String原始数据cdQ因为它是伪对象?br />
    instanceof

    instanceof操作W和typeof作用cMQ不同的是,instanceof需要明指定对象是否属于某U特定类型。例?br />
var  s  =   new  String( " Good morning ! " );
alert(s 
instanceof  String);

    操作W和语句

    ECMAScript 中大多数操作W、语句和 Java 都比较类|但也有一些其Ҏ(gu)的,?label 语句Q?with 语句Q?for-in 语句{等?br />
    Functions

    Functions是ECMAScript的核心,在Q何时候Q何地斚w可以q行的一l代码语句?br />
function  functionName(arg0, arg1, ……? argN)  {
  statements
}

    当function没有q回值或return语句后没有值的时候,该function实际上会(x)被系l定义ؓ(f)undefinedQ当functionq回值的时候,function可以不必明确指定为某U数据类型?br />
    关于重蝲

    重蝲是面向对象语a的基本特性之一Q但 ECMAScript ?functions q不能重载,在同一范围里可以定义两个完全相同的函数Q在调用函数的时候,最后的一个函数发挥作用。这U特性比较麻?ch),但可以通过 arguments 对象来实现和重蝲cM的功能?br />
function  func()  {
  
if (arguments.length  ==   1
{
    alert(arguments[
0 +   5
);
  }
  else   if  (arguments.length  ==   2 {
      alert(arguments[
0 +  arguments[ 1
]);
    }

}


func(
5 );   // 输出10
func( 10 15 );   // 输出25

    前面提到q,在同一范围里可以定义两个完全相同的functionQ在调用function的时候,最后的一个function发挥作用?br /> 
function  func(i)  {
  alert(i 
+   10
);
}

function  func(i)  {
  alert(i 
+   20
);
}

func(
5 );   // 输出25

    可以看出Q是调用了最后的一个function使得数据l果?5Q如果用FunctioncL定义以上两个函数Q那Z么会(x)使用最后的一个function可能?x)更明确一些?

var  func  =   new  Function(“i? “alert(i  +   10 )?;
var  func  =   new  Function(“i? “alert(i  +   20
)?;
func(
5 );

    func指向了另外一个引用,从而值发生了改变Qfunc是作为function对象的引用而存在的Qƈ且允怸个变量指向同一?function?br />
    和Functioncȝ关的属性、方法有许多Q例如length、toString()、valueOf(){等。其中toString()在调试程序中使用较多?/font>


爪哇之家 2006-07-16 13:26 发表评论
]]>JavaScript基本l成http://www.aygfsteel.com/hszdz/articles/58413.html爪哇之家爪哇之家Sun, 16 Jul 2006 05:25:00 GMThttp://www.aygfsteel.com/hszdz/articles/58413.html   JavaScript的学?fn),?/font>Nicholas C.Zakas的《Professional JavaScript for Web Developers》ؓ(f)核心材料?/font>

    JavaScript作ؓ(f)一U网l客L(fng)的脚本语aQ由以下三部分组成:(x)

1.  ECMAScript--JavaScript的核心,描述了语a的基本语法和对象?br />
    ECMAScriptl历了三个版本的更新Q现在大多数|络览器都支持Edition3。ECMAScript主要提供语言相关的信息与标准Q如语法、类型、声明、关键字、保留字、操作运符、对象等{?br />
2.  DOM--The Document Object ModelQ描qC作用于网内容的Ҏ(gu)和接口?br />
    DOM是HTML的一个应用程序接口,它也l历了三个版本的更新Q其中以W一和第二个版本使用最为广泛,在第二个版本中,最重要的特性莫q于提供了事件响应的接口Q处理CSS的接口,UdH口的接口,q且能够控制代码?wi)的l构{等?br />    除了使用最多的DOM Core和DOM HTML标准接口外,其他的部分语a也拥有自qDOM标准Q如SVG、MathML、SMIL?br />
3.  BOM--The Browser Object ModelQ描qC和浏览器交互的方法和接口?br />
    例如弹出新的览器窗口,Ud、改变和关闭览器窗口,提供详细的网l浏览器信息Qnavigator objectQ,详细的页面信息(location objectQ,详细的用户屏q分辨率的信息(screen objectQ,对cookies的支持等{。BOM作ؓ(f)JavaScript的一部分q没有相x准的支持Q每一个浏览器都有自己的实玎ͼ虽然有一些非 事实的标准,但还是给开发者带来一定的ȝ(ch)?/font>

爪哇之家 2006-07-16 13:25 发表评论
]]>
վ֩ģ壺 բ| | | | ԭ| | | | | | | | | ֹ| | ɽ| | Ͻ| ¡| ɽ| ֿ| ޼| | | | ̩| | ɽ| گ| ʯɽ| ʯ| ̽| û| | | ɽ| | ˮ| | | |