1

我搜索了很多以限制 TinyMCE 中的字符,但没有任何效果!如果用户输入超过 500 个字符,我如何创建消息框?

4

2 回答 2

1

知道了!新版本使用 ed.on("KeyDown", function(ed,evt) { 而不是 ed.onKeyDown.add(function(ed, evt) {

所以函数变为:

setup : function(ed) {
                    var max_tekens = <?php echo $max_aantal_tekens_excl_opmaak; ?>;
                    var beschikbaar_voor_opmaak = <?php echo ($max_aantal_tekens_incl_opmaak -
                    $max_aantal_tekens_excl_opmaak); ?>;
                    ed.on("KeyDown", function(ed,evt) {
                      aantal_tekens_zonder_opmaak = tinyMCE.activeEditor.getContent().replace(/(<
([^>]+)>)/ig,"").length;
                      aantal_tekens_met_opmaak = tinyMCE.activeEditor.getContent().length;
                      var key = ed.keyCode;
                      $('#omschrijving_wijzigen_tekens').html(max_tekens - aantal_tekens_zonder_opmaak);
                      if (aantal_tekens_met_opmaak > (max_tekens+beschikbaar_voor_opmaak)){
                          alert('U hebt het maximaal aantal tekens nog niet helemaal bereikt, maar u gebruikt veel opmaak dat ook ruimte kost. Verwijder tekens of gebruik minder opmaak (vet, cursief, ondertrepen).');
                          ed.stopPropagation();
                          ed.preventDefault();
                      }
                      else if (aantal_tekens_zonder_opmaak > max_tekens-1 && key != 8 && key != 46){
                           alert('U hebt het maximaal aantal tekens bereikt.');
                           ed.stopPropagation();
                           ed.preventDefault();
                      }
                      else if(aantal_tekens_zonder_opmaak > (max_tekens - 25)){
                          $('#omschrijving_wijzigen_max_tekens').css('color','red');
                      }

                      else {
                          $('#omschrijving_wijzigen_max_tekens').css('color','gray');
                      }
                    });
                }
于 2013-05-20T09:50:14.503 回答
0

使用 TinyMCE 4,您可以挂钩 on change 事件:

$(document).on('tinymce:changed', function() {
    content = tinyMCE.activeEditor.getContent();
    // check length of content and do whatever you want
});
于 2013-05-18T19:35:03.467 回答