HTML5 has the concept of content editable which allows any DOM element to become a user-editable canvas. All you need to do is add the
contenteditable="true" attribute to an element:
<div id="content" contenteditable="true"> </div>
The beauty of this feature is that the content is part of the HTML DOM and can be edited with the chrome inspector, so you have all the power of the inspector to drag and drop nodes, change the element styles from the style panel, etc...
This gives you a fantastic editor to work in with a very minimal amount of code required.