为什么要特别提textarea?因为其实textarea这个节点很特殊。而因为这个节点特殊,所以在IE和其它浏览器下,对它的解释不一样。

卖一下关子,哈哈!其实主要原因是今天帮一个师兄修一个BUG,具体是因为从服务器拉数据下来插进textarea的时候失败,这个情况只在IE出现。其它浏览器一切正常!

首先,为什么textarea特殊?在所有的表单插件里面,textarea的值是写在两个开闭标签之间的,所以它的值在DOM的角度可以看作是文本节点,这是textarea特有的。也正因为这个特性,所以当你修改它的innerHTML的值时你仍然可以改变textarea的文本,而IE虽然支持这样做,却不允许一件事:动态插入一些html标签。

你不妨做一个实验:

在IE下通过JS插入一段HTML代码,用的是innerHTML属性而不是value或者innerText。

IE9+我是没有去测试,但是IE6、7、8都会报错。

估计是出于安全的原因,所以才不允许JS动态插入html进textarea,但细心的人可以发现,其实如果你手动键入html代码的话,textarea是可以接受的。我想其实这经历了这样一个过程:字符转义。对的,这是唯一能够解释手动输入html代码成功的原因了。

所以,在我看来,既然那么多的浏览器的textarea都不支持html的显示,为何JS操作的时候还要用innerHTML属性呢?也就是说无论你用value插入html代码还是用innerHTML插入html代码,它都不会解析后显示(所以才会有富文本编辑器代替textarea),那么为什么不用value去设置textarea的值呢?

所以我认为,设置textarea的值不应该通过innerHTML(当然更不可能是innerText,因为firefox的原因),而要通过value去设置。这一点是开发人员要注意的。因为最近看的一些童鞋的代码老喜欢用innerHTML。其实我认为这都是要分场合的。
标签:
Textarea

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
无争山庄资源网 Copyright www.whwtcm.com

评论“关于使用Textarea的注意事项”

暂无“关于使用Textarea的注意事项”评论...

RTX 5090要首发 性能要翻倍!三星展示GDDR7显存

三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。

首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。

据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。