Skip to content

Instantly share code, notes, and snippets.

@ambar
Created August 9, 2012 09:49
Show Gist options
  • Save ambar/3302760 to your computer and use it in GitHub Desktop.
Save ambar/3302760 to your computer and use it in GitHub Desktop.
chrome formatblock bug

在 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>
@ambar
Copy link
Author

ambar commented Aug 15, 2012

userAgent 将触发 spam filter ( ̄▽ ̄)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment