-
-
Save wkw/ce1d985855268e57e32b9d17d2802537 to your computer and use it in GitHub Desktop.
Get/Set content of a TinyMCE visual or text editor with JavaScript
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
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