我正在使用Firefox中的Javascript WYSIWYG编辑器。我使用div将contenteditable属性设置为true以实现此目的(我不能为这个特定项目使用contenteditable iframe)。这个令人满意的div嵌套在另一个不满足的div中。使用execCommand应用格式时遇到以下两个问题,包括字体样式和大小,以及粗体,斜体和下划线:
要了解我的意思,请尝试在Firefox 3中运行以下HTML代码:
<html>
<head><title></title></head>
<body>
<button onClick="execCommand('bold', false, null);">Bold</button>
<div style="width: 300px; border: 1px solid #000000;">
<div contenteditable="true">Some editable text</div>
</div>
</body>
</html>
请尝试以下方法:
对于可能导致这些问题以及如何解决这些问题的任何想法都将不胜感激!
答案 0 :(得分:1)
有趣。在Firefox 3.6.3中,我无法复制第一个问题:选择所有可编辑文本并按下按钮按预期切换粗体。但是,我确实看到了另外两个问题。它们将成为Mozilla实现contenteditable
的错误。
有趣的是,如果您使用designMode
而非contenteditable
,则不会发生替代词 - 粗体问题。我怀疑它也会解决你的其他问题。这涉及使整个文档可编辑,而不仅仅是其中的元素:
window.onload = function() {
document.designMode = "on";
};
如果这不是一个选项,并且您需要contenteditable
提供的精细控制,则需要使用DOM操作和范围实现您自己的粗体命令版本。这将非常适合在IE和非IE浏览器中工作。