詳細瞭解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
     可選。指定屬性值被設定時調用的函數的字符串。一個指定了GETPUT屬性的PUBLIC:PROPERTY元素是一個讀寫屬性。一個PUT函數被指定,而指定GET函數指定失敗,會導致該屬性只可寫,一般來說這是不希望出現的。
     value
     可選。指定屬性默認值的變量。

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

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

  備註
     當指定NAME屬性與一個已經爲該元素定義的標準方法的名稱相同時,一個行爲可以重載元素的默認行爲。
     如果PUTGET屬性被指定,INTERNALNAME屬性被忽略。通過在PUTGET屬性中指定的函數來設定與/或獲得屬性值,優先級高於通過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 island 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 island 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:ATTACHPUBLIC:EVENTPUBLIC:METHODPUBLIC: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
     子級元素
    
  備註
     PUBLIC:ATTACH元素是attachEvent方法的一份聲明。
     當指定的事件發生在連接了行爲的元素時,首先調用的是元素的事件處理部分,且在行爲的事件處理前。如果多個行爲被連接到一個元素,同時多個事件處理部分定義在同一元素的同一事件上,函數在元素事件處理部分調用後會隨機地被調用。
     當爲ONEVENT提供一個值時,避免賦予事件處理部分函數一個已經存在的DHTML事件的名稱。使用一個已經存在的DHTML事件的名稱可能會遞歸錯誤。
     事件的名稱對所有腳本語言都是大小寫敏感的。

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