在 pre 标签或具有 pre-wrap 样式的容器中,
para a 和 para b 之间有一个 TextNode 内容为 '\n' ,
此时执行 document.execCommand('formatblock', false, 'blockquote')
然后 para b 被克隆了。
Chrome/21.0.1180.75 Safari/537.1
<!DOCTYPE HTML> | |
<html lang="en-US"> | |
<head> | |
<meta charset="UTF-8"> | |
<title></title> | |
</head> | |
<body> | |
<div contentEditable> | |
<pre> | |
<p>para a</p> | |
<p>para b</p> | |
</pre> | |
</div> | |
<script> | |
var textNode = document.querySelector('p:first-child').nextSibling | |
var selection = document.getSelection() | |
var range = document.createRange() | |
selection.removeAllRanges() | |
range.setStart(textNode, 0) | |
range.setEnd(textNode, 0) | |
selection.addRange(range) | |
document.execCommand('formatblock', false, 'blockquote') | |
</script> | |
</body> | |
</html> |
userAgent 将触发 spam filter ( ̄▽ ̄)