重现代码
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<script type="text/javascript">
var ta= document.createElement('textarea')
ta.placeholder = 'text'
var clone = ta.cloneNode(true)
document.body.appendChild(clone)
alert(clone.value)
</script>
</body>
</html>
以上网页代码,在 IE10/11 中输出如下
可以看到IE10/11克隆时竟然把值赋给了value,这是一个的bug。
其它浏览器输出的均是空字符串。
判断是否有该bug的函数提取如下
var hasTextareaCloneBug = function() {
var t = document.createElement('textarea')
t.placeholder = 't'
return t.cloneNode(true).value === 't'
}()