2011-09-21 82 views
2

chrome支持isContentEditable屬性(將其列在「檢查元素」中),但對於INPUT,FORM報告false - 實際上,所有內容。例如,我也認爲INPUT,非只讀,應該是真的。html5,isContentEditable是什麼?

有人知道發生了什麼嗎?

+0

[什麼](http://blog.whatwg.org/the-road-to-html-5-contenteditable)[是](HTTP: //html5demos.com/contenteditable)['isContentEditable'](http://www.w3.org/TR/html5/editing.html#contenteditable)? – Alex

+0

http://jsfiddle.net/Xxefu/ –

+0

@Alex - 偉大的鏈接 - 謝謝 –

回答

9

isContentEditable與窗體和輸入框沒有任何關係。 它被設計成標記內聯可編輯html內容的一種方式。

這裏你可以看到一個工作示例:http://www.navioo.com/javascript/dhtml/isContentEditable_Example_4513.html

你可以閱讀一下

這裏:http://www.w3.org/TR/2009/WD-html5-20090423/editing.html

或:http://blog.whatwg.org/the-road-to-html-5-contenteditable

+0

謝謝!有兩個問題:一,您是否知道如何使用contentEditable的鏈接,例如,您如何知道用戶是否輸入了更改,以及是否有單個屬性來知道正常的HTMLElement是否可以進入,例如INPUT ? –

+0

1)我很確定它不常用,因爲它沒有像onEdited或其他東西一樣拋出標準事件。你可以在這裏找到一些答案:http://stackoverflow.com/questions/1391278/contenteditable-change-events – icchanobot

+0

2)不能你可以檢查它是一個輸入還是一個textarea?還有其他什麼「進入」? – icchanobot

3

一個元素的isContentEditable財產,在瀏覽器中支持它,告訴你元素的直接子元素是否可編輯。它特別適用於常規的非交互式內容(即,不形成對照),這可以使用contenteditable屬性進行編輯:

<div contenteditable="true">This text is all <i>editable</i></div> 

兩者的<div><i>元件上方將報告trueisContentEditable屬性。但是請注意,並非所有支持contentEditable的瀏覽器也支持isContentEditable:例如,Firefox 3.x支持contentEditable,但支持not isContentEditable

contenteditable以HTML5標準化,但已經存在了十多年。它於2000年首次在IE 5.5中引入,並在數年後最終進入其他瀏覽器。自3.0版以來,Firefox已經擁有它(儘管自1.0之前開始,它的文檔範圍相當於designMode),Safari自從(我認爲)2.0開始。

這裏的CONTENTEDITABLE歷史的一個很好的總結:http://blog.whatwg.org/the-road-to-html-5-contenteditable

+0

謝謝。@icchanobot指出了網站和目的 - 從來不知道任何存在的!聽起來很不錯 - 正如一個評論所說,「再見textarea」 - 現在正在研究如何使用以及如何得到很好的支持 - 例如,caniuse.com沒有列出它,還有一些評論說Safari手機不支持。 –

+0

@cc:哦,是的,我沒有發現我會複製@ icchanobot的鏈接。 iOS中的Safari不支持'contenteditable',但會在iOS 5中。 –