2012-09-10 53 views
33

在閱讀過WHATWG的HTML5 - A technical specification for Web developers我看到很多參考資料如:IDL在WHATWG html5標準文檔中,idl屬性意味着什麼?

反映的內容屬性的屬性

一些IDL屬性的定義,以反映特定內容 屬性。這意味着在獲取時,IDL屬性返回 內容屬性的當前值,並且在設置時,IDL 屬性將內容屬性的值更改爲給定的 值。

和:

在符合文件,只有一個body元素。 document.body IDL屬性提供了腳本,可以輕鬆訪問 文檔的正文元素。

body元素作爲事件處理程序內容屬性公開了Window對象的事件處理程序的號碼 。它還反映了它們的事件處理程序IDL屬性 。

我的(不可否認的)理解來自Windows世界。我認爲.idl文件用於映射n層分佈式應用程序中的遠程過程調用。我會假設內容屬性是指html元素屬性。

在標準中沒有地方可以看到,它解釋了術語「內容屬性」和「IDL屬性」的這種用法。任何人都可以解釋這些術語的含義以及這兩種屬性之間的關係嗎?

+0

IDL屬性的一個示例是'Element'的'innerHTML'。當您爲此屬性設置值時,它會在解析提供的值後觸發DOM的更改。它與內容屬性非常不同。 – HRJ

回答

38

的IDL(Interface Definition Language)來自Web IDL規格:

本文檔定義的接口定義語言,網絡IDL,即 可以用來描述意在Web瀏覽器中實現 接口。 Web IDL是一種IDL變體,具有多個功能 ,可以更容易地指定Web平臺 中的通用腳本對象的行爲。與Web IDL 描述的接口如何對應於ECMAScript執行環境中的構造是如何在本文檔中詳述的 。

內容屬性是出現在標記的那些:

<div id="mydiv" class="example"></div> 

在上面的代碼idclass都是屬性。通常,內容屬性將具有相應的IDL屬性。

例如,下面的JavaScript:

document.getElementById('mydiv').className = 'example' 

相當於設置了class內容屬性。

在JavaScript文本中,IDL屬性通常被稱爲屬性,因爲它們作爲DOM對象的屬性公開爲JavaScript。

雖然通常有一對內容屬性和一個IDL屬性/屬性,但它們不一定是可以互換的。例如,對於一個<option>元件:

  • 內容屬性selected表示選項的初始狀態(並且當用戶改變了選項不改變),
  • 屬性selected反映當前控件的狀態
+1

感謝您鏈接到Web IDL。這應該是「可讀」的版本! –

+0

很好的答案。我冒昧地在屬性和屬性之間添加一些信息。 – sleske

+0

那麼怎麼樣onclick和其他?我在Mozilla郵件列表上的某處閱讀了這些IDL屬性,但它們也出現在標記中......他們將內容屬性描述爲影響呈現過程的屬性。 –