我想keyup
事件太晚了。
如果您使用keypress
事件而不是keyup
, 那么这似乎是可行的:
ed.on( \'keypress\', function(e) {
var content = ed.getContent().replace(
/(<[a-zA-Z\\/][^<>]*>|\\[([^\\]]+)\\])|(\\s+)/ig, \'\' );
var max = 20;
var len = content.length;
var diff = max - len;
if ( diff < 1 )
tinymce.dom.Event.cancel(e);
document.getElementById("character_count").innerHTML = "Characters Left: " + diff;
} );
The
keypress
事件不会记录诸如Alt、Enter、Control、ArrowUp等键。。。因此,当达到允许的最大内容长度时,我们不会陷入困境!
这也适用于keydown
, 但它会记录所有密钥,因此我们必须为允许的密钥添加例外。