我正在尝试编写一个Wordpress插件。我将在WP的Tinymce编辑器中获得计数。 基本上,它是一个单词计数器,可以计算您的帖子的长度,并在元框中为您提供此消息
你的帖子有450字
我的问题是通过javascript从Tinymce获取文字。这不起作用:
document.getElementById('content')
Tinymce的内容ID是内容。但是这段代码返回NULL。我找不到Tinymce的有效ID名称。
很快,其他所有代码都准备就绪,只是我无法从Wordpress的WYSIWYG编辑器中获取单词。
感谢。
答案 0 :(得分:28)
尝试:
tinymce.activeEditor.getContent();
或
tinymce.editors.content.getContent();
其中“content”是您的textarea的ID。
同样,如果您想在TinyMCE文本区域中获得所选(突出显示的)文本,您可以这样做:
tinymce.activeEditor.selection.getContent();
完整的API位于:http://tinymce.moxiecode.com/wiki.php/API3:class.tinymce.Editor
TinyMCE还提供了许多可以绑定的事件,尤其是keyup,keydown和keypressed事件。
请务必在TinyMCE加载到页面后调用此内容。
答案 1 :(得分:4)
我记得微小的MCE从ajax动态加载内容,所以也许你的document.getElementById('content')
试图过早地获取该元素。
我认为你有2种方法可以解决这个问题:
1)等待ajax事件completition,使用事件监听器,然后获取元素及其文本。
2)使用tinyMce函数获取文本区域的内容。在这里您可以找到一些有用的提示: http://tinymce.moxiecode.com/wiki.php/How-to_load/save_with_Ajax_in_TinyMCE
答案 2 :(得分:4)
接受的答案对我有用,但对于一个页面上的多个编辑器,我必须通过编辑器ID访问它,所以下面
tinymce.editors['content_id'].getContent();
为我工作。
答案 3 :(得分:2)
这是一个例子。无论密钥在Visual或HTML模式下发生,编辑器下方的文本都会更新。
php文件中的
可视模式事件:
function my_tiny_mce_before_init( $init ) {
$init['setup'] = "function( ed ) { ed.onKeyUp.add( function( ed, e ) { repeater( e ); }); }";
return $init;
}
add_filter( 'tiny_mce_before_init', 'my_tiny_mce_before_init' );
HTML模式事件:
jQuery( document ).ready( function( $ ) {
$('<div id=look-at-it></div>').insertAfter('#postbox-container-1');
$('#content').on('keyup', function( e ) {
repeater( e );
});
});
var repeater = function ( e ) {
var targetId = e.target.id;
var text = '';
switch ( targetId ) {
case 'content':
text = jQuery('#content').val();
break;
case 'tinymce':
if ( tinymce.activeEditor )
text = tinymce.activeEditor.getContent();
break;
}
jQuery('#look-at-it').html( text );
}
经过测试:
答案 4 :(得分:1)
这对我有用:
if (jQuery("#wp-text-wrap").hasClass("tmce-active")){
text1 = tinyMCE.activeEditor.getContent( { format : 'html' } );
}else{
text1 = jQuery('[name="text"]').val();
其中 text 是tinymce编辑器的ID
答案 5 :(得分:0)
在我测试的每种情况下,这似乎对我有用。无论我们是从文本模式还是以可视模式开始,无论是在何时更改模式和添加更多内容,都是如此。
<application
android:name=".AppApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:theme="@style/AppTheme">