Insert shortcode in post editor from javascript (Visual / HTML)

I want to insert a shortcode in the WordPress Post Editor from javascript (not a tinymce plugin). I currently use:

tinyMCE.activeEditor.execCommand('mceInsertContent', false, "[SHORTCODE]test[/SHORTCODE] ");

but this only seems to work when the editor is in “Visual” mode (and sometimes activeEditor == null). How do I accomplish this regardless of the state of the editor? (I’d think this is a fairly common scenario)

Related posts

Leave a Reply

1 comment

  1. I was pulling my hair out on this one, but I might have figured it out.

    Try this (with jQuery):

    if( ! tinyMCE.activeEditor || tinyMCE.activeEditor.isHidden()) {
      jQuery('textarea#content').val("[SHORTCODE]test[/SHORTCODE] ");
    } else {
      tinyMCE.execCommand('mceInsertRawHTML', false, "[SHORTCODE]test[/SHORTCODE] ");
    }
    

    Basically, you need to set the value of the textarea directly if the editor is hidden.