Definition of ExecCommand function for bold?

I see that CKEditor was mentioned in one of previous comments :) So this is how we handle executing commands:

  • We do everything manually. As you can see DOM API isn't sufficient and implementations differ between browsers, so I guess (but I haven't checked this) that HTML containing some text with applied styles in one browser won't work in other (because one browser applied strong and second b or span with inline style).
  • First of all we need custom Range and Selection implementations. You can't use them, but there's a cool Rangy lib.
  • Next component that you need is set of methods for applying, removing and checking styles. Here's our impl.
  • And the last component is trivial - custom commands, because it's convenient to mimic W3C's APIs and ideas.