Skip to content

Instantly share code, notes, and snippets.

@jcchikikomori
Forked from RadGH/wordpress-tinymce.js
Created November 18, 2019 06:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jcchikikomori/a246fc595a7ae248b78ccffc3ddc8bf8 to your computer and use it in GitHub Desktop.
Save jcchikikomori/a246fc595a7ae248b78ccffc3ddc8bf8 to your computer and use it in GitHub Desktop.
Get/Set content of a TinyMCE visual or text editor with JavaScript
/*
Based on: http://wordpress.stackexchange.com/questions/42652/#answer-42729
These functions provide a simple way to interact with TinyMCE (wp_editor) visual editor.
This is the same thing that WordPress does, but a tad more intuitive.
Additionally, this works for any editor - not just the "content" editor.
Usage:
0) If you are not using the default visual editor, make your own in PHP with a defined editor ID:
wp_editor( $content, 'tab-editor' );
1) Get contents of your editor in JavaScript:
tmce_getContent( 'tab-editor' )
2) Set content of the editor:
tmce_setContent( content, 'tab-editor' )
Note: If you just want to use the default editor, you can leave the ID blank:
tmce_getContent()
tmce_setContent( content )
Note: If using a custom textarea ID, different than the editor id, add an extra argument:
tmce_getContent( 'visual-id', 'textarea-id' )
tmce_getContent( content, 'visual-id', 'textarea-id')
Note: An additional function to provide "focus" to the displayed editor:
tmce_focus( 'tab-editor' )
=========================================================
*/
function tmce_getContent(editor_id, textarea_id) {
if ( typeof editor_id == 'undefined' ) editor_id = wpActiveEditor;
if ( typeof textarea_id == 'undefined' ) textarea_id = editor_id;
if ( jQuery('#wp-'+editor_id+'-wrap').hasClass('tmce-active') && tinyMCE.get(editor_id) ) {
return tinyMCE.get(editor_id).getContent();
}else{
return jQuery('#'+textarea_id).val();
}
}
function tmce_setContent(content, editor_id, textarea_id) {
if ( typeof editor_id == 'undefined' ) editor_id = wpActiveEditor;
if ( typeof textarea_id == 'undefined' ) textarea_id = editor_id;
if ( jQuery('#wp-'+editor_id+'-wrap').hasClass('tmce-active') && tinyMCE.get(editor_id) ) {
return tinyMCE.get(editor_id).setContent(content);
}else{
return jQuery('#'+textarea_id).val(content);
}
}
function tmce_focus(editor_id, textarea_id) {
if ( typeof editor_id == 'undefined' ) editor_id = wpActiveEditor;
if ( typeof textarea_id == 'undefined' ) textarea_id = editor_id;
if ( jQuery('#wp-'+editor_id+'-wrap').hasClass('tmce-active') && tinyMCE.get(editor_id) ) {
return tinyMCE.get(editor_id).focus();
}else{
return jQuery('#'+textarea_id).focus();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment