HTC簡明教程

  在微軟 (R)Internet Explorer 5 中介紹, HTML 組件 (HTCs) 提供一種機制來使用腳本作爲動態 HTML(DHTML) 行爲實現組件功能。以 .htc 擴展名保存,一份 HTC 是一份包含腳本和一組用於定義組件的 HTC 特殊元素的 HTML 文件。此部分包含相關元素和它們支持的成員。

  對象
document 在給定的瀏覽器窗口中表現 HTML 文檔。
element 返回一份主文檔中連接行爲的標籤的參考。
PUBLIC:ATTACH 綁定一個函數到一個事件上,因此每次事件發生在特殊對象上時函數會被調用。
PUBLIC:COMPONENT 以 HTC 指明文件的內容。
PUBLIC:DEFAULTS 設定一份 HTC 的默認屬性。
PUBLIC:EVENT 定義一個 HTC 的事件,使之暴露於包含該 HTC 的文檔。
PUBLIC:METHOD 定義一個 HTC 的方法,使之暴露於包含該 HTC 的文檔。
PUBLIC:PROPERTY 定義一個 HTC 的屬性,使之暴露於包含該 HTC 的文檔。

 

  方法
createEventObject
創建一個事件對象,當需要傳遞事件附加信息給 PUBLIC:EVENT 元素的 fire 方法時使用。

  事件
oncontentready
連接了行爲的元素的內容完全被解析時發生。
oncontentsave
連接了一份元素行爲的一個元素的內容被保存或複製前發生。
ondetach
從一個元素解除一份行爲的連接前發生。
ondocumentready
當包含行爲的文檔完全被解析時發生。

  PUBLIC:PROPERTY 元素
--------------------------------------------------------------------------------------
定義一個 HTC 的屬性,使之暴露於包含該 HTC 的文檔。

  格式
<PUBLIC:PROPERTY
GET = "sGetFunction"
ID = "sPropertyID"
INTERNALNAME = "sInternalName"
NAME = "sName"
PERSIST = "bPersist"
PUT = "sPutFunction"
value = "vvalue"
/>

  屬性
GET
可選。指定屬性值被獲得時調用的函數的字符串。一個只指定了 GET 屬性而沒有指定 PUT 屬性的 PUBLIC:PROPERTY 元素是一個只讀屬性。
ID
可選。組件內 PUBLIC:PROPERTY 元素的唯一識別字符串。這個屬性類似於 DHTML 中的 ID 屬性。
INTERNALNAME
可選。包含文檔中指定方法提交的名稱的字符串。這個內部的名稱必須在組件內任意參考前廣泛的關聯;否則,一個腳本錯誤出現,指出名稱未定義。如果沒有內部的名稱被指定,默認情況下使用 NAME 屬性。
NAME
必選。 指定暴露給包含文檔的屬性的名稱的字符串。默認情況下, NAME 的指定也用於組件內屬性的提交,除非 INTERNALNAME 屬性被指定。
PERSIST
可選。指定是否堅持屬性作爲葉面的部分的布爾值。
PUT
可選。指定屬性值被設定時調用的函數的字符串。一個指定了 GET 和 PUT 屬性的 PUBLIC:PROPERTY 元素是一個讀寫屬性。一個 PUT 函數被指定,而指定 GET 函數指定失敗,會導致該屬性只可寫,一般來說這是不希望出現的。
value
可選。指定屬性默認值的變量。

  方法
propertyID.fireChange()
通報包含文檔屬性值在元素上發生 onpropertychange 事件時被改變。如果屬性沒有 PUT 屬性被指定,在包含文檔中屬性被設定時 onpropertychange 會自動發生。

  元素信息
父級元素: PUBLIC:COMPONENT
子級元素:  無

備註
當指定 NAME 屬性與一個已經爲該元素定義的標準方法的名稱相同時,一個行爲可以重載元素的默認行爲。
如果 PUT 或 GET 屬性被指定, INTERNALNAME 屬性被忽略。通過在 PUT 和 GET 屬性中指定的函數來設定與 / 或獲得屬性值,優先級高於通過 INTERNALNAME 設定和 / 或獲得屬性值。
PUT 屬性指定的函數必須注意包含文檔中的元素使用 PUBLIC:PROPERTY 元素的 fireChange 方法改變屬性值的情況。調用這個方法導致 onpropertychange 事件發生在包含文檔的相應元素,同時 event 對象的 propertyName 設定爲屬性的名稱。

  PUBLIC:METHOD 元素
--------------------------------------------------------------------------------------
定義一個 HTC 的方法,使之暴露於包含該 HTC 的文檔。

  格式
<PUBLIC:METHOD
ID = "sID"
INTERNALNAME = "sInternalName"
NAME = "sName"
/>

  屬性
ID
可選。組件內 PUBLIC:METHOD 元素的唯一識別字符串。這個屬性類似於 DHTML 中的 ID 屬性。
INTERNALNAME
可選。包含文檔中指定方法提交的名稱的字符串。默認情況下, NAME 也指定提交到組件內的方法,除非 INTERNALNAME 屬性被指定。

  元素信息
父級元素
PUBLIC:COMPONENT
子級元素

最小運行環境
備註
當指定 NAME 屬性與一個已經爲該元素定義的標準方法的名稱相同時,一個行爲可以重載元素的默認行爲。

 

PUBLIC:EVENT 元素
--------------------------------------------------------------------------------------
定義一個 HTC 的事件,使之暴露於包含該 HTC 的文檔。

  格式
<PUBLIC:EVENT
ID = "sEventID"
NAME = "sName"
/>

  屬性
ID
可選。組件內 PUBLIC:EVENT 元素的唯一識別字符串。這個屬性類似於 DHTML 中的 ID 屬性。
NAME
必選。指定主文檔中提交的事件的名稱的字符串。

  方法
eventID.fire([oEvent])
包含的文檔發生事件。
這個方法有下面的參數:
oEvent
指定 event 對象包含的附加信息的對象。

  元素信息
父級元素
PUBLIC:COMPONENT
子級元素

備註
通過指定一個 NAME 屬性,類似於一個已經爲元素定義的標準事件,一個行爲可以重載元素默認的行爲。
行爲定義的事件不起泡。它們只發生在連接了行爲的元素上。

 

  PUBLIC:DEFAULTS 元素
--------------------------------------------------------------------------------------
設定一份 HTC 的默認屬性。

格式
<PUBLIC:DEFAULTS
canHaveHTML = "bCanHaveHTML"
contentEditable = "bEditable"
style = "sStyle"
tabStop = "bIsTabStop"
viewInheritStyle = "bInheritsStyle"
viewLinkContent = "bViewLinkContent"
viewMasterTab = "bViewMasterTab"
/>

  屬性
canHaveHTML
可選。指定爲下列之中一個的布爾值。
false
HTC 文件定義的標籤的內容不能包含 HTML 標籤。
true
HTC 文件定義的標籤的內容可以包含 HTML 標籤。
contentEditable
可選。指定爲下列之中一個的布爾值。
inherit
默認值。對象從它的父級繼承內容被用戶編輯的能力。
false
HTC 文件定義的標籤的內容不能編輯。
true
HTC 文件定義的標籤的內容可以編輯。
style
可選。指定 HTC 文件定義的標籤的樣式字符串。
tabStop
可選。指定爲下列之中一個的布爾值。
false
默認值。 HTC 文件定義的標籤不可被 TAB 選擇激活。
true
HTC 文件定義的標籤可以被 TAB 選擇激活。
viewInheritStyle
可選。指定爲下列之中一個的布爾值。
false
Viewlink 不從主 HTML 文件中繼承樣式。
true
默認值。 Viewlink 從主 HTML 文件中繼承樣式。
viewLinkContent
可選。指定爲下列之中一個的布爾值。
false
默認值。 HTC 文件的文檔中標籤不作爲 viewlink 使用。
true
HTC 文件的文檔中標籤作爲 viewlink 使用。
viewMasterTab
可選。指定爲下列之中一個的布爾值。
false
viewlink 的主元素不包含在主文檔的 TAB 序列中。
true
默認值。 viewlink 的主元素包含在主文檔的 TAB 序列中。

 

  元素信息
父級元素
PUBLIC:COMPONENT
子級元素

PUBLIC:COMPONENT 元素
--------------------------------------------------------------------------------------
以 HTC 指明文件的內容。

微軟 Internet Explorer 6 中的新內容
literalContent 屬性作爲一個新的可能值支持嵌套,創建一份嵌套的文字內容元素行爲。

格式
<PUBLIC:COMPONENT
ID = "sID"
lightWeight = "bLight"
literalContent = "sLiteral"
NAME = "sName"
supportsEditMode = "bEditable"
tagName = "sTagName"
URN = "sURN"
>
<!-- 子級元素 -->
</PUBLIC:COMPONENT>

屬性
ID
可選。組件內 PUBLIC:COMPONENT 元素的唯一識別字符串。這個屬性類似於 DHTML 中的 ID 屬性。
lightWeight
可選。指定 HTC 文件是否包含標籤的字符串。如果 HTC 文件不包含標籤,這個屬性應當設置爲 true 來改進表現效果。這個屬性對任何 HTC 文件均有效。
true
HTC 文件不包含標籤,因而無需每次都解析並表現自定義標籤。這些標籤由 HTC 文件定義,在主文檔中使用。
false
默認值。 HTC 包含必需解析並表現的自定義標籤。這些標籤由 HTC 文件定義,在主文檔中使用。
literalContent
可選。指定自定義標籤包含的內容是被解析並表現,還是作爲數據島處理的字符串。這個屬性僅在 HTC 文件定義一個元素行爲時有效,此時需要使用 tagName 屬性。更多信息請查閱備註。
false
默認值。由 tagName 屬性定義的標籤內的文本和標籤並作爲數據島處理,而是解析並表現。
nested
Internet Explorer 6 及後繼版本。 Content within the first opening and last closing of the tag defined by the tagName attribute is treated as a data is lan d and is not parsed or rendered. 更多信息請查閱使用 literalContent 屬性。
true
Content within the first opening and last closing of the tag defined by the tagName attribute is treated as a data is lan d and is not parsed or rendered.
NAME
可選。指定主文檔中提交的行爲的名稱的字符串。
supportEditMode
可選。指定 HTC 文件內容是否可編輯的字符串。這個屬性僅在 HTC 文件定義一個元素行爲時有效。
true
HTC 文件包含的標籤可編輯。
false
默認值。 HTC 文件包含的標籤不可編輯。你能夠通過對 HTC 文件中每個元素設定 isContentEditable 屬性爲 VARIANT_TRUE 來重載此屬性值。
tagName
可選。指定自定義標籤名稱的字符串,此標籤由 HTC 文件定義並導入到主文檔中。這個屬性僅在 HTC 文件定義一個元素行爲時有效。更多信息請查閱備註。
URN
可選。字符串,以統一資源名稱 (URN) 格式,從而唯一識別此組件。因而在多個行爲發生在同一名稱的事件時可以唯一的識別。當事件發生, event 對象的 srcUrn 屬性被設定爲發生在事件上行爲的 URN 。

 

元素信息
子級元素
至多出現一次
PUBLIC:DEFAULTS
一或多次出現
PUBLIC:ATTACH , PUBLIC:EVENT , PUBLIC:METHOD , PUBLIC:PROPERTY
備註
PUBLIC:COMPONENT 元素可以定義兩種截然不同類型的行爲。一種是連接行爲,使用 behavior 層疊樣式表 (CSS) 屬性來修改一個已經存在的元素的行爲。第二種類型,在 Internet Explorer 5.5 中介紹,被稱作一個元素行爲。一個元素行爲用來定義如標準的 HTML 標籤一樣在網頁中使用的自定義標籤。
一個元素行爲意味着網頁中一個自定義標籤的創建和使用。因此,當 HTC 文件定義一個元素行爲時有必要定義 PUBLIC:COMPONENT 元素的 tagName 屬性。如先前指出的,此元素的部分屬性爲元素行爲特別設計。更多信息清查詢元素行爲。
當多個行爲連接到同一元素時, NAME 屬性特別有用。因爲它允許你調用包含文檔中需要的行爲的屬性和方法。如果在一份文檔中多個行爲被連接到一個 <SPAN ID="mySpan"> 元素,你可以使用下面的格式來設定命名爲 behaviorABC 的行爲的 delay 屬性。
mySpan.behaviorABC.delay = 1000;

PUBLIC:ATTACH 元素
--------------------------------------------------------------------------------------
綁定一個函數到一個事件上,因此每次事件發生在特殊對象上時函數會被調用。

格式
<PUBLIC:ATTACH
EVENT = "sEvent"
FOR = "sObject"
ID = "sID"
ONEVENT = "sEventHandler"
/>

 

屬性
EVENT
必選。指定一個動態 HTML(DHTML) 事件、或任何在 HTC 參考中列舉出的由 HTML 組件 (HTC) 指定事件的字符串。
FOR
可選。指定爲下面值中一個的字符串,用來識別事件源。
document
引用 document 對象。
element
默認值。引用行爲連接的元素。
window
引用 window 對象。
ID
可選。組件內 PUBLIC:ATTACH 元素的唯一識別字符串。這個屬性類似於 DHTML 中的 ID 屬性。
ONEVENT
必選。事件處理函數的直接聲明或一份行內腳本的指定字符串。

元素信息
父級元素
PUBLIC:COMPONENT
子級元素

備註 < p>

 

PUBLIC:ATTACH 元素是 attachEvent 方法的一份聲明。
當指定的事件發生在連接了行爲的元素時,首先調用的是元素的事件處理部分,且在行爲的事件處理前。如果多個行爲被連接到一個元素,同時多個事件處理部分定義在同一元素的同一事件上,函數在元素事件處理部分調用後會隨機地被調用。
當爲 ONEVENT 提供一個值時,避免賦予事件處理部分函數一個已經存在的 DHTML 事件的名稱。使用一個已經存在的 DHTML 事件的名稱可能會遞歸錯誤。
事件的名稱對所有腳本語言都是大小寫敏感的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章