主頁(yè) > 知識(shí)庫(kù) > 關(guān)于使用Textarea的注意事項(xiàng)

關(guān)于使用Textarea的注意事項(xiàng)

熱門標(biāo)簽:網(wǎng)站建設(shè) 百度競(jìng)價(jià)點(diǎn)擊價(jià)格的計(jì)算公式 硅谷的囚徒呼叫中心 阿里云 智能手機(jī) 檢查注冊(cè)表項(xiàng) 美圖手機(jī) 使用U盤裝系統(tǒng)
為什么要特別提t(yī)extarea?因?yàn)槠鋵?shí)textarea這個(gè)節(jié)點(diǎn)很特殊。而因?yàn)檫@個(gè)節(jié)點(diǎn)特殊,所以在IE和其它瀏覽器下,對(duì)它的解釋不一樣。

賣一下關(guān)子,哈哈!其實(shí)主要原因是今天幫一個(gè)師兄修一個(gè)BUG,具體是因?yàn)閺姆?wù)器拉數(shù)據(jù)下來(lái)插進(jìn)textarea的時(shí)候失敗,這個(gè)情況只在IE出現(xiàn)。其它瀏覽器一切正常!

首先,為什么textarea特殊?在所有的表單插件里面,textarea的值是寫在兩個(gè)開(kāi)閉標(biāo)簽之間的,所以它的值在DOM的角度可以看作是文本節(jié)點(diǎn),這是textarea特有的。也正因?yàn)檫@個(gè)特性,所以當(dāng)你修改它的innerHTML的值時(shí)你仍然可以改變textarea的文本,而IE雖然支持這樣做,卻不允許一件事:動(dòng)態(tài)插入一些html標(biāo)簽。

你不妨做一個(gè)實(shí)驗(yàn):

在IE下通過(guò)JS插入一段HTML代碼,用的是innerHTML屬性而不是value或者innerText。

IE9+我是沒(méi)有去測(cè)試,但是IE6、7、8都會(huì)報(bào)錯(cuò)。

估計(jì)是出于安全的原因,所以才不允許JS動(dòng)態(tài)插入html進(jìn)textarea,但細(xì)心的人可以發(fā)現(xiàn),其實(shí)如果你手動(dòng)鍵入html代碼的話,textarea是可以接受的。我想其實(shí)這經(jīng)歷了這樣一個(gè)過(guò)程:字符轉(zhuǎn)義。對(duì)的,這是唯一能夠解釋手動(dòng)輸入html代碼成功的原因了。

所以,在我看來(lái),既然那么多的瀏覽器的textarea都不支持html的顯示,為何JS操作的時(shí)候還要用innerHTML屬性呢?也就是說(shuō)無(wú)論你用value插入html代碼還是用innerHTML插入html代碼,它都不會(huì)解析后顯示(所以才會(huì)有富文本編輯器代替textarea),那么為什么不用value去設(shè)置textarea的值呢?

所以我認(rèn)為,設(shè)置textarea的值不應(yīng)該通過(guò)innerHTML(當(dāng)然更不可能是innerText,因?yàn)閒irefox的原因),而要通過(guò)value去設(shè)置。這一點(diǎn)是開(kāi)發(fā)人員要注意的。因?yàn)樽罱吹囊恍┩拇a老喜歡用innerHTML。其實(shí)我認(rèn)為這都是要分場(chǎng)合的。

標(biāo)簽:湘潭 通遼 煙臺(tái) 賀州 湖北 黃山 懷化 山南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《關(guān)于使用Textarea的注意事項(xiàng)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266