0

我在使用 execCommand 时遇到问题(完整),因此非常感谢您的帮助-我毫不怀疑我在吠叫错误的树,但是.....无论如何

我有一个这样的 div

<div class="editable" id="editor" contenteditable="true"> 
    <2>Some text in here</h2> blah blah blah ...
</div>

那是“可编辑的”,即document.designMode = 'on';——它得到了这个“状态”的焦点。在模糊它变为document.designMode = 'off';

我有一个“测试按钮”

<input type="button" id="bold" value="Bold"> 

当“点击”使“突出显示的文本”变为粗体 - 因此 execCommand

到目前为止,我有这样的事情:

function getSelected() {
if(window.getSelection) { return window.getSelection(); }
else if(document.getSelection) { return document.getSelection(); }
else {
var selection = document.selection && document.selection.createRange();
if(selection.text) { return selection.text; }
return false;
}
return false;
}


$('#bold').click(function(){
var selection = getSelected();
alert(selection);
});

警报(粗体单击)确实为我提供了突出显示/选定的文本,但我无法弄清楚如何将其“变为”粗体。我想我需要访问 innerHTML 什么的?

非常感谢帮助 - 在此先感谢。哦,我不想使用 i-frame 或 textarea

4

1 回答 1

7

我强烈推荐使用Rangy来处理文本选择。

一个跨浏览器的 JavaScript 范围和选择库。它提供了一个简单的基于标准的 API,用于在所有主流浏览器中执行常见的 DOM 范围和选择任务,抽象出 Internet Explorer 和 DOM 兼容浏览器之间该功能的完全不同的实现。

您可以使用CSS 类应用程序模块将文本加粗(现场演示)。

于 2011-03-16T13:59:21.427 回答