我限制了可以作为特殊页面(事件提交页面)的内容添加的字符数。它在WordPress中的文本或代码模式下工作正常,但在我使用WYSIWYG编辑器时却没有。
知道如何更改它以便使用WordPress编辑器吗?
非常感谢你!
这是我正在使用的JS。
// Set your character limit
var count_limit = 1000;
// Set the initial symbol count on page load
$('#tcepostcontent-wc span').html($('#tcepostcontent').val());
$('#tcepostcontent').on('keyup', function () {
var char_count = $(this).val().length;
var tcepostcontent = $(this).val();
var text_remaining = count_limit - char_count;
// Update the character count on every key up
$('#tcepostcontent-wc span').html(text_remaining);
if (char_count >= count_limit) {
$('#tcepostcontent-wc').css('color', 'red');
$(this).val(tcepostcontent.substr(1, count_limit));
} else {
$('#tcepostcontent-wc').css('color', null);
}
}).after('<p id="tcepostcontent-wc">Max 1000 are available <span>1000</span></p>');
答案 0 :(得分:1)
WordPress的可视化编辑器是TinyMCE,他可以使用自定义API来解决这个问题。您应该使用以下来源,将其添加到一个小的自定义插件中,更改编辑器的tinyMCE.activeEditor.editorId
的ID,激活它,然后完成。
add_filter( 'tiny_mce_before_init', 'wpse24113_tiny_mce_before_init' );
function wpse24113_tiny_mce_before_init( $initArray ) {
$initArray['setup'] = <<<JS
[function( ed ) {
ed.onKeyDown.add( function( ed, e ) {
if ( tinyMCE.activeEditor.editorId == 'content-id' ) {
var content = tinyMCE.activeEditor.getContent();
var max = 300;
var len = content.length;
if (len >= max) {
$( '#charNum' ).html( '<span class="text-error">You've got more then '+max+' characters!</span>' );
} else {
var charCount = max - len;
$( '#charNum').html( charCount + ' characters left' );
}
}
});
}][0]
JS;
return $initArray;
}
源代码来自SE论坛WordPress主题中的this answer。
答案 1 :(得分:0)
它适用于文本模式,但不适用于视觉效果(此处为“visuell”)。
这应该只是选择正确的id是正确的,但无论我选择什么(#tinymce,tcepostcontent_ifr等)它都不起作用。
非常感谢你的帮助!
干杯, 托