发现了IE9里的一个bug

本文详细介绍了在IE9浏览器中,Textarea元素在使用内联样式和innerHTML方法插入HTML标签时出现的解析问题。通过具体代码演示,揭示了IE9将部分HTML标签视为样式应用而非文本内容的特性,以及这种行为与其他浏览器的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

textarea元素在IE9里的一个情形下会出现问题,这个问题在IE9之前的版本和其他的浏览器里都不存在。这个本不该出现的“特性”,或许是IE9的一个bug。下边详细说明之。

大家在各个浏览器里测试下边的简单代码便可发现这个问题

<!DOCTYPE HTML>
<html>
<head>
<title></title>
</head>
<body>
<textarea id="t" rows="6"></textarea>
<script>
var t = document.getElementById("t");
t.innerHTML = "<p style='color:red'>aaaa</p>"; // 只能在IE9中被解析,其他浏览器不解析
/*
下边是我自己测试的结论:
textarea表示文本区域,本应该把它里边的各种文字、标签等显示成纯文本的形式。
直接把诸如
<p style='color:red'>aa</p>的html形式标签放到textarea里,在IE9及其他浏览器里都会把P标签显示出来,
这个应该是正确的解析,没什么问题。
但是,把
<p style='color:red'>aa</p>
通过JS的innerHTML向textarea里插入,就能(只能)被IE9解析成红色的aa,把p标签当成html标签解析,
p被过滤掉了(注意,<!DOCTYPE>的文档声明必须要加上,不加的话,IE9就不会解析p标签了)。
当然,textarea里一般不应该用innerHTML方法插入内容。

*/
</script>
</body>
</html>

 

转载于:https://www.cnblogs.com/huajs/archive/2011/11/06/2238326.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值