亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > HTC > 正文

HTC教程

2020-01-31 16:06:29
字體:
來源:轉載
供稿:網友
在微軟IE 5.0版本的瀏覽器發布以前,網頁編程中面對的最大挑戰就是不能輕易地創建組件,以達到代碼重用和多頁面共享的目的。這個問題一直困擾著DHTML(動態 HEML)的網頁編程者。他們只能不斷地重復書寫HTML、CSS和javascript的代碼,以滿足多個頁面上的重復或相似的功能。自IE 5.0瀏覽器發布后,這種情況得到了改善,它帶給我們一個新的指令組合方法,可把實現特定功能的代碼封裝在一個組件內,從而實現多頁面的代碼重用,使網頁編程進入一個全新的天地。這個新的技術就是我們要談到的DHTML中的“行為”(Behaviors)。 
  “行為”作為一個簡單易用的組件,它封裝了頁面上特定的功能或動作。當把一個“行為”附到WEB頁面中的一個元件上時,這個元件的原有行為就會有所改變。因此,網頁編程者可以開發通用的DHTML指令,并改變原有對象的一些屬性,用“行為”來增強一個對象的功能,同時也簡化了頁面的HTML代碼。而且“行為”的創建和使用也非常簡單方便,所需的知識也只是原來已經習慣使用的CSS樣式表、HTML指令和javascript腳本語言。只要你對此有所了解,有過實際編程的經歷,學習并掌握“行為”的使用完全沒有問題。我們將以一個改變字體效果的“行為”組件為例來說明如何編寫和使用一個“行為”,并體驗“行為”給頁面編輯帶來的優點和方便之處。 

  首先新建一個名為font_efftce.htc的文本文件,組成“行為”組件的文件都是以.htc為擴展名,這個文件中的內容就是我們對這個“行為”的描述。它的創建和使用步驟如下: 
(1)首先給這個“行為”增加幾個事件響應,語句書寫格式如下: 
< 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”對應所需事件名,在這里分別為:onmouseover,onmouseout,onmousedown,onmouseup四個事件名,你當然可以再增加其它的事件名來滿足你的特定需求。“ONEVENT”對應著個自的事件句柄,即事件觸發時所調用的函數名稱。glowit()函數使字體周圍產生一個紅色的輝光。noglow()函數是消除字體的輝光效果。Font2yellow()函數是把字體顏色改為黃色。Font2blue()函數是把字體顏色改為藍色。四個事件的定義都是相似的。 
(2)接下來,再給這個“行為”增加二個“方法”定義,內容如下。 
< PUBLIC:METHOD NAME="move_down" / > 
< PUBLIC:METHOD NAME="move_right" / > 
  “NAME”參數對應的是給定的“方法”名稱。move_down和move_right分別是向下和向右移動的“方法”對應的函數名稱。注意,在方法名的后面不要帶“( )”括號,即不要寫成“move_down()”這個樣子,這在“方法”定義的語法上是不允許的。 

(3)接下來的工作就是在我們熟悉的DHTML環境下,用javascript腳本語句編寫“事件句柄”和“方法”所對應的函數內容,實現預期的效果。具體內容參考下面的源程序。其中的“element”參數指的是這個“行為”所附著的對象,因為“行為”總是被附著到頁面的元件上面,并通過這個元件發揮作用。其它語句都是DHTML的編程內容,就不再多說了。如有不明之處,可參考微軟的MSDN開發文檔中有關IE瀏覽器的內容,上面有詳細的DHTML編程參考內容、屬性和方法使用說明等,并包含了大量的文章和舉例程序。經常訪問微軟的MSDN文檔,尤其對于初學者來說是一個良好的學習習慣,你幾乎可以得到任何你想找的答案,它的網址為:http://msdn.microsoft.com/ie/。 
  完整的“行為”文檔“font_effect.htc”的內容如下: 
////////////////////////////“行為”文檔開始/////////////////////////////////// 
//給“行為”增加四個鼠標事件 
< 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事件的調用函數 
function font2blue(){ 
if (event.srcElement == element) 

element.style.color='blue'; 


//定義鼠標onmousedown事件的調用函數 
function font2yellow(){ 
if (event.srcElement == element) 

element.style.color='yellow'; 



//定義鼠標onmouseover事件的調用函數 
function glowit() 

if (event.srcElement == element) 

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



//定義鼠標onmouseout事件的調用函數 
function noglow() 

if (event.srcElement == element) 

element.style.filter=""; 
element.style.color=font_color; 


< /SCRIPT > 
//////////////////“行為”文檔結束/////////////////////////////// 

(4)如何在一個頁面上使用“行為” 
  在頁面上使用“行為”組件,并不需要學習新的知識。所需的知識的也不過是CSS樣式表和HTML的設置而已,請看下面的語句。 
< STYLE > 
.myfilter{behavior:url(font_effect.htc);position:relative;font-weight:bold;width=180;left:0;} 
< /STYLE > 
  可以看出,這和以前我們已經熟知的樣式表設置完全相同。上面的語句定義了一個樣式名:“myfilter”,其中對我們來說比較新的內容是:“behavior:url(font_effect.htc);”,“behavior”是新增的“行為”屬性名,這就是“行為”在樣式表中的設置方式。括號中的內容是“行為”文檔的文件名,本例中表明“行為”文檔在與頁面文件在同一個目錄下,如果“行為”文檔安置在其它目錄下,在此參數的前面要加上相應的路徑名,以保證可以正確地定位“行為”文檔的位置。此“樣式”中的其它內容就是普通的樣式屬性設置,可根據你的需要增減,但在此例中,由于使用了“glow”濾鏡效果,至少要設置一個寬度(width)屬性。通過以上的樣式指定,我們就有了一個名為:“myfilter”的樣式,它附帶一個有字體變化效果的“行為”。如果你想要在一個頁面元件上使用這個附帶“行為”的樣式,同樣也很簡單,只要把這個“樣式名”安置在元件的屬性設置區域即可,見下面的語句。 
< span id="myspan" class='myfilter' >行為產生的文字效果< /span >< br > 
< span class='myfilter' >鼠標指向后產生輝光< /span > 
  以上語句里面沒有什么新的內容,class='myfilter'就是我們所熟悉的樣式設置。在第一個“span”標記的屬性中還定義了一個“id”標記,稍后就會看到,這是用來演示調用“行為”內的“方法”而設置的。這樣設置后,“span”元件中的內容就可以顯示出“行為”組件內的預定效果: 
1. 鼠標指針移動到文字內容上時,在文字周圍產生紅色的輝光效果,同時文字變成白色。 
2. 當鼠標按鈕按下時,文字顏色改變為黃色。 
3. 鼠標按鈕抬起后,文字顏色又改變為藍色。 
4. 當鼠標指針移動到文字區域以外時,去掉了紅色輝光效果,文字恢復原樣。 
  另外,我們在定義“行為”時設置了二個“方法”,“move_down”和“move_right”。為調用這二個“方法”,定義了二個按鈕: 
< button onclick="myspan.move_right();" >向右移動第一行文字< /button >< br > 
< button onclick="myspan.move_down();" >向下移動第一行文字< /button > 
  用按鈕的onclick事件去調用這二個“方法”,先前定義的“id”標記就作為元件的對象名稱,用“myspan.move_down”來調用“方法”,操縱這個對象??梢钥吹?,在按下相應的按鈕后,會使第一行的文字產生向下或向右的移動。雖然只是用第一行文字做了示范,實際上,只要做相應的設置,你也可以移動其它對象。頁面源文檔的完整內內容如下: 
< 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' >行為產生的文字效果< /span >< br > 
< span class='myfilter' >鼠標指向后產生輝光< /span >< br > 
< span class='myfilter' >同時文字變白< /span >< br > 
< span class='myfilter' >按下鼠標后文字變黃< /span >< br > 
< span class='myfilter' >抬起鼠標后文字變藍< /span >< br > 
< span class='myfilter' >鼠標離開后文字恢復原狀< /span >< br > 
< button onclick="myspan.move_right();" >向右移動第一行文字< /button >< br > 
< button onclick="myspan.move_down();" >向下移動第一行文字< /button > 
< /BODY > 
< /html > 
  通過以上的簡單介紹,可以看出,我們很容易地在一個“行為”中同時組合了多種文字變化效果,通過簡單的“樣式”設置,任意地將它與頁面元件相關連,體現了“行為”組件的優點和強大功能。一個“行為”組件,不僅能在一個頁面內重復使用,也可供同一站點上的所有頁面使用。試想一下,如果不使用“行為”來完成上述的效果,雖然可以在頁面內調用一組預定的函數來完成同樣的功能,但頁面內每一個使用文字效果的元件都要附加四個鼠標事件,如果在多個頁面內使用相同的效果,被調用的函數也需要在每一個頁面內重復設置。相比之下,孰優孰劣是很明顯的。所以,使用“行為”組件,可以制作出簡潔、高效、通用和便于維護的頁面。本文的舉例只是為了說明“行為”組件的編寫和使用過程,使讀者對“行為”編程有一個概括的了解,并以此基礎制作出自己所需要的“行為”組件,或直接引用滿足個人需要的現成“行為”組件,因為“組件共享”的概念也是“行為”開發者的初衷。最后,愿本文能起到“拋磚引玉”的目的,使讀者步入精彩的DHTML網頁編程天地。 

說明: 
HTC是HTML component的縮寫, 
是IE5.0的主要擴展之一, 
除了具備一般組件的可重用優點之外, 
還具有易于開發使用等優點, 
因為需要引入外部文件,這里就不舉例了,寶庫里有例子. 

控件和組件 
HTC提供了一個簡單機制以在腳本中實現DHTML行為。一個HTC文件和HTML文件沒有任何差別,并且以“.htc”為后綴, 

可以使用HTC實現以下行為: 
設定屬性和方法。通過“PROPERTY”和“METHOD”元素定義 
設置自定義事件。通過“EVENT”元素實現,用該元素的“fire()”方法釋放事件, 
通過“createEventObject()”方法設置事件環境。 
訪問所包含該HTC的的HTML頁的DHTML對象模型,使用HTC的“element"對象,返回 
一個附加行為的元素,使用該對象,HTC可以訪問包含文擋及它的對象模型(屬性、方法、事件)。 
收取通知,使用”ATTACH“元素實現,瀏覽器不但通知HTC標準的DHTML事件,而且通知HTC兩種特殊事件:oncontentready事件和ondocumentready事件 。 


定義標記和命名空間 
HTC的基礎是自定義標記 
要為頁面定義自定義標記,必須為該標記提供命名空間 
要使用該標記必須在該標記前加上正確的XML命名空間前綴 
例如: 

定義一個新標記RIGHT的例子 
代碼片斷如下:<HTML XMLNS:DOCJS> 
<HEAD> 
<STYLE> 
@media all { 
DOCJS/:RIGHT {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 XMLNS:DOCJS XMLNS:DOCjavascript> 

組件定義 
組件的名字是由HTC文檔里定義在第一行的XML命名空間決定的 
該頁不用調用其他的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> //為組件定義響應事件 
</BODY> 
</HTML> 


其中的oncontentready是在組件被調用者完全導入時觸發 
再看看fnInit() 

function fnInit() { 
document.body.innerHTML = element.value;//設定組件顯示內容 
document.body.className = "clsMyTag"; //設定顯示樣式表, 
defaults.viewLink = document; //使本組件對其他文檔可見 
element.aProperty = element.value; //設置組件的屬性值 



組件的調用 

<HTML xmlns:MyCom> 
<HEAD> 
<?IMPORT NAMESPACE="MyCom" IMPLEMENTATION="MyTag.htc"/> 
</HEAD> 
<BODY> 
<MyCom:MyTag></MyCom:MyTag> 
</BODY> 
</HTML>
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91久久精品美女| 国产丝袜一区二区三区免费视频| 国产亚洲aⅴaaaaaa毛片| 国产亚洲成av人片在线观看桃| 亚洲精品美女在线观看| 久久夜精品香蕉| 国产91色在线播放| 国产成人精品一区二区在线| 国产玖玖精品视频| 91在线看www| 福利二区91精品bt7086| 精品亚洲一区二区三区在线播放| 69久久夜色精品国产7777| 日韩欧美一区二区三区| 久久av在线播放| 亚洲自拍在线观看| 欧美中文字幕在线视频| 国产精品揄拍500视频| 亚洲第一精品久久忘忧草社区| 欧美亚洲激情在线| 亚洲精品国产精品国产自| 国产精品视频免费在线观看| 91国内揄拍国内精品对白| 欧美极度另类性三渗透| 欧美一级电影免费在线观看| 日韩大片在线观看视频| 国产精品av在线播放| 8x拔播拔播x8国产精品| 国产精品99免视看9| 国内自拍欧美激情| 国内精品美女av在线播放| 神马国产精品影院av| 中文字幕国产精品久久| 色播久久人人爽人人爽人人片视av| 在线日韩欧美视频| 在线精品高清中文字幕| 日韩欧美在线观看视频| 美女视频久久黄| 欧美另类xxx| 亚洲国产小视频在线观看| 91九色国产在线| 欧美激情久久久久| 亚洲香蕉成人av网站在线观看| 少妇精69xxtheporn| 亚洲a∨日韩av高清在线观看| 亚洲精品国产精品久久清纯直播| 日本a级片电影一区二区| 欧美激情视频在线免费观看 欧美视频免费一| 欧美性xxxx18| 黑人与娇小精品av专区| 日韩av中文在线| 亚洲精品一区二区三区不| 成人福利视频在线观看| 欧美成年人网站| 久久人人看视频| 日韩成人小视频| 九九九久久久久久| 国产性色av一区二区| 日韩成人性视频| 黄色91在线观看| 亚洲精品日韩丝袜精品| 日韩精品免费在线视频| 亚洲石原莉奈一区二区在线观看| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲电影免费观看高清完整版在线| 91在线视频一区| 欧美性受xxxx黑人猛交| 性色av一区二区三区红粉影视| …久久精品99久久香蕉国产| 欧美日韩国产一区中文午夜| 热久久免费视频精品| 伊人久久久久久久久久久| 亚洲精品国产综合久久| 精品偷拍各种wc美女嘘嘘| 俺去亚洲欧洲欧美日韩| 日韩第一页在线| 亚洲欧美中文在线视频| 亚洲视频在线免费观看| 国产在线98福利播放视频| 日本精品一区二区三区在线| 欧美成人精品在线观看| 美日韩丰满少妇在线观看| 国产这里只有精品| 国产亚洲激情在线| 成人免费在线网址| 91精品在线观看视频| 日本精品免费观看| 海角国产乱辈乱精品视频| 久久久久国产精品一区| 亚洲美女性生活视频| 社区色欧美激情 | 日韩欧美国产激情| 成人黄色av免费在线观看| 色中色综合影院手机版在线观看| 韩国19禁主播vip福利视频| 国产精品video| 欧美激情女人20p| 国产精品91一区| 久久综合九色九九| 亚洲va码欧洲m码| 国产成人精品免费视频| 欧美乱妇40p| 亚洲第五色综合网| 日韩av在线一区二区| 性色av一区二区三区免费| 91深夜福利视频| 亚洲美女性视频| 欧美午夜精品久久久久久久| 亚洲欧美日韩在线高清直播| 亚洲香蕉在线观看| 国产精品日本精品| 国产亚洲欧洲在线| 欧美在线免费观看| 成人黄色在线播放| 欧美孕妇孕交黑巨大网站| 欧美成人在线免费| 最新69国产成人精品视频免费| 久久亚洲精品毛片| 日韩美女av在线| 国产精品久久久久久久久久99| 免费91麻豆精品国产自产在线观看| 国产99久久精品一区二区| 久久精品99久久久久久久久| 国产亚洲欧美另类中文| 亚洲欧美精品一区| 日本三级韩国三级久久| 日韩高清av一区二区三区| 成人免费xxxxx在线观看| 精品国产一区久久久| 欧美久久精品午夜青青大伊人| 57pao国产成人免费| 夜夜嗨av色综合久久久综合网| 国产精品久久久999| 国产在线一区二区三区| 亚洲深夜福利视频| 91精品久久久久久久久久| 欧美精品电影在线| 亚洲视频专区在线| 国产网站欧美日韩免费精品在线观看| www国产91| 欧美激情性做爰免费视频| 久久久久久69| 亚洲人成在线免费观看| 懂色aⅴ精品一区二区三区蜜月| 久久躁狠狠躁夜夜爽| 91精品视频免费| 欧美日韩在线观看视频| 久久成人一区二区| 日韩精品极品在线观看播放免费视频| 色偷偷888欧美精品久久久| 97精品在线视频| 亚洲欧美一区二区三区情侣bbw| 久久久久国产精品免费网站| 91久热免费在线视频| 亚洲人成五月天| 国产精品∨欧美精品v日韩精品| 欧美视频精品一区| 欧美在线免费视频| 亚洲人永久免费| 在线激情影院一区| 菠萝蜜影院一区二区免费| 午夜精品一区二区三区av| 久久精品国产一区| 亚洲97在线观看|