2012-08-13 52 views
6

我刚开始使用contentEditable,并没有在其上找到很多全面的信息。contentEditable,CTRL-B CTRL-I并保存

我注意到,在Chrome中,我可以让粗体字/斜体按CTRL - CTRL -

这可能会成为其他浏览器的预期行为吗?这一点,例如,工作在Chrome:

<div class="container" id="typer" onclick="this.contentEditable='true';"> 

http://jsfiddle.net/uk6DA/15/

我想知道如果我能读这个格式,以节省用户的编辑?另外,我可以创造一个粗体按钮和斜体按钮,将触发CTRL - CTRL - ?或者,我需要取决于用户按下CTRL - CTRL - (这意味着为他们提供一张纸条告诉他们)?

回答

16

这是所有主流浏览器的标准配置。在所有主流浏览器中,还有可通过document.execCommand()获得的键盘快捷键的编程等效项目。粗体和斜体命令,例如,可以执行如下:

document.execCommand("Bold", false, null); 
document.execCommand("Italic", false, null); 

然而,加价生成浏览器之间变化。例如,粗体的变体包括<b>foo</b>,<strong>foo</strong><span style="font-weight: bold">foo</span>

参考文献:

+0

谢谢,这非常有帮助。但是你知道为什么这个例子(http://jsfiddle.net/uk6DA/15/)在IE9中不工作吗?至少ctrl-B和ctrl-I不是。 execCommands的工作? – Dave 2012-08-13 14:13:51

+0

没关系。我自己的网页有效。 JSFiddle页面没有出于某种原因。 – Dave 2012-08-13 14:15:11

+0

@Dave:是的,我认为这是一个JSFiddle问题。 – 2012-08-13 14:32:22

2

简短答案'是'。你可能会发现这个article有趣。许多'开发商已经走下了这条路。如果你想要一个漂亮的wysiwyg编辑器,有很多选择。

对你的问题:是的,你可以阅读格式。在元素上尝试一个innerHTML,你会在你的粗体周围找到<b>标签,在你的斜体周围找到<i>。另外 - 在我分享的文章中,您将了解如何创建一个大胆的按钮。希望这可以帮助!

+0

谢谢,我希望我能接受两个答案,但我只能接受一个。 ( – Dave 2012-08-13 14:17:43

+0

)所有的好Dave!他的反正比较完整,老实说,我在当天玩过ContentEditable,但有很多成功和'兼容'的WYSIWYG编辑 - 没有太多理由重新发明轮子。你自己的轻量级体验可以是有趣的,有趣的,如果你的需求是有用的。大多数所见即所得的编辑器的另一个问题 - 它们是对IE5,6等的黑客的合并。谢天谢地,我们正在进入一个IE8 +的未来: - ) – 2012-08-13 14:34:04

+0

我正试图创建一个独特的用户界面。再次感谢您的帮助! – Dave 2012-08-13 15:52:20