3

我已經在IE(6/7/8)中搞砸了一個奇怪的行爲,導致我瘋了。鑑於以下標記:IE:爲輸入元素定義了未記錄的「緩存」屬性?

<input type="text" value="foo" class="bar" cache="yes" send="no" /> 

請注意cache屬性設置爲yes。但是IE以某種方式管理在渲染DOM時將屬性值更改爲cache="cache"

所以,我想知道,有沒有我沒有意識到的未公開的功能?我已經搜索了一個小時左右,但無法找到任何信息(甚至沒有在MSDN上)。

注意
我知道,添加自定義屬性是不符合標準和布爾屬性應注意爲attribute="attribute"。不過,我必須在加入團隊之前就應對這些問題。這些自定義屬性與javascript結合使用,爲表單處理提供了一種更友好的方式(並且它在Firefox/Safari/Opera/Chrome中運行得非常好)。

我知道我可以簡單地將這些自定義屬性轉換爲將與HTML5一起引入的x-data屬性,但這需要花費幾個小時的額外工作 - 感嘆。

希望,我明確了自己。 在此先感謝。

回答

1

多年來,它的布爾屬性最好寫成<input type="checkbox" checked="checked"/>等。這是因爲在恐龍時代,你應該只寫<input type="checkbox" checked/>並指定相同的值,因爲屬性名稱打破了最少的傳統瀏覽器,同時仍然使XML標記符合標記。

+0

正如我寫的,我意識到這個遺留問題。事情是IE不會打破「發送」屬性。 – aefxx 2010-02-17 12:01:25

+0

如果你這麼說,我建議你改說一下,因爲我現在已經閱讀了你的問題兩次了,但仍然無法看到你說的那個地方。你如何閱讀屬性值? – erikkallen 2010-02-17 12:57:05

+0

你說得對,我沒有明確提及 - 我會編輯這篇文章。 – aefxx 2010-02-17 13:34:02