把HTML作为字符串处理是个坏主意。有两个更好的选择:第一个是获取包含当前用户选择的元素,并使用DOM方法和属性,例如
parentNode
execCommand
方法
document
,将自动切换粗体。所有主流浏览器的最新版本都支持它。
document.execCommand("bold", false, null);
更新
注意,在Firefox(可能还有其他浏览器)中,除非文档
designMode
已打开。下面是一个完整的例子。突出显示一些文本并按Ctrl-B:
<html>
<head>
<title>Test</title>
<script type="text/javascript">
window.onload = function() {
document.designMode = "on";
};
function keyDown(evt) {
if (evt.keyCode == 66 && evt.ctrlKey) {
document.execCommand("bold", false, "");
}
return false;
}
</script>
</head>
<body onkeydown="return keyDown(event);">
<div>I like tea <b>with milk</b></div>
</body>
</html>