document.execCommand() FontSize in pixels?

bordeux picture bordeux · May 3, 2011 · Viewed 28.8k times · Source

How can I change font size to 30px (for example) using document.execCommand?

This:

document.execCommand("fontSize", false, "30px");

doesn't work, because in 3rd argument of the function execCommand, it only allows me to input a value between and including 1 to 7.

Answer

Tim Down picture Tim Down · May 3, 2011

It's a limitation of the FontSize command. There are various options I can think of:

  • You could use a CSS class instead and use the CSS class applier module of my Rangy library;
  • You could use a hacky method, such as calling document.execCommand("fontSize", false, "7"); and then finding the elements the command has created and changing them as required. See example: http://jsfiddle.net/S3ctN/. This obviously depends on there being no other <font> elements with size 7 in the document and it also relies on the browser using <font> elements for font size, which it seems they all do.