javascript - 如何使用ckeditor中的onKeyUp函数

标签 javascript jquery ckeditor

我在页面中使用CKeditor,并尝试通过KeyUp方法计算剩余字符数。

这是我的代码

HTML

<div class="row">
  <div class="col-xs-12 col-sm-6 inputBlock textareaRegion">
  <div id="editor1" class="textarea"></div>
  <label class="showLabel">Comments</label><div class="maxlengthCountDiv">Remaining character length:<span class="maxlengthCount"></span></div>
</div>
<div class="row">
  <div class="col-xs-12 col-sm-6 inputBlock textareaRegion">
  <div id="editor2" class="textarea"></div>
  <label class="showLabel">Comments</label><div class="maxlengthCountDiv">Remaining character length:<span class="maxlengthCount"></span></div>
</div>

并使用CKeditor替换它并设置工具栏

  CKEDITOR.replace( 'editor1' );
  CKEDITOR.replace( 'editor2' );

CKEDITOR.config.toolbar = [
       ['Styles','Format','Font','FontSize'],
       ['Bold','Italic','Underline','StrikeThrough','-','Undo','Redo','-','Cut','Copy','Paste','Find','Replace','-'],
       ['NumberedList','BulletedList'],
    ] ;

JavaScript代码

$(document).on("keyup", ".textarea", function (event) {
        var textCount="";
        var textLimit = 1500;
        var deleteKey = 46;
        var backspaceKey = 8;
        var keyCode = event.keyCode;
        if (keyCode === deleteKey || keyCode === backspaceKey){
            var str = $(this).text();
            var currentCount = parseInt($(this).parents('.textareaRegion').find('.maxlengthCountDiv .maxlengthCount').text());
            if(currentCount < textLimit){
                textCount = currentCount + 1;
                $(this).parents('.textareaRegion').find('.maxlengthCountDiv .maxlengthCount').empty().html(textCount);
            }

            return true;
        }
        else{
            var str = $(this).text();
            if (str.length >= 1500)
            {
                return false;
            }
            else{
                textCount = textLimit - str.length;
                $(this).parents('.textareaRegion').find('.maxlengthCountDiv .maxlengthCount').empty().html(textCount);
            }
        }
    });

KeyUp 功能未触发。如何解决此问题?

最佳答案

除了@Artem Dorodovskiy(这是推荐的方法)所写的之外,您还可以将 keyupkeydown 事件直接附加到 editable像这样:

var editor = CKEDITOR.replace( 'editor1', {});
editor.on( "pluginsLoaded", function( event ){
    editor.on( 'contentDom', function( evt ) {
        var editable = editor.editable();                   
        editable.attachListener( editable, 'keyup', function( e ) { 
            // do something
        });
    }); 
});

关于javascript - 如何使用ckeditor中的onKeyUp函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50209974/

相关文章:

javascript - 有没有办法在html javascript中重写裸域url

javascript - 如何在 RadioButton-Selection 上调用 Javascript 函数?

javascript - 函数内的 Jquery bind()/live()

ruby-on-rails - CKEditor Carrierwave Cloudinary

html - 不透明度 50% 元素透过不透明元素显示

javascript - '=' 运算符在这种情况下做什么? sqrtf(1 - (t = t/d - 1) * t);

javascript - 如何更改 Firebase 父节点的名称以启用规则

javascript - React JS,总分

javascript - 在js中使用html显示错误

javascript - 将所有信息和标签从 div 传输到 CKEditor