Ich benutze TinyMCE in einem Textfeld auf meiner Seite. Ich versuche, die Zeichen- und Wortzählung zu erhalten, und das Textarea wird eingegeben. Ich habe verschiedene Versionen versucht, damit es richtig funktioniert, aber ohne Erfolg. Hier ist die neueste Buggy-Version:TinyMCE Character Count inkorrekt
$().ready(function() {
$('textarea.tinymce').tinymce({
// Location of TinyMCE script
script_url: 'jscripts/tiny_mce/tiny_mce.js',
// General options
theme: "advanced",
plugins: "autolink,lists,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,advlist",
// Theme options
theme_advanced_buttons1: "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect",
theme_advanced_buttons2: "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
theme_advanced_buttons3: "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
theme_advanced_buttons4: "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak",
theme_advanced_toolbar_location: "top",
theme_advanced_toolbar_align: "left",
theme_advanced_statusbar_location: "bottom",
theme_advanced_resizing: true,
// Example content CSS (should be your site CSS)
content_css: "css/content.css",
// Drop lists for link/image/media/template dialogs
template_external_list_url: "lists/template_list.js",
external_link_list_url: "lists/link_list.js",
external_image_list_url: "lists/image_list.js",
media_external_list_url: "lists/media_list.js",
// Replace values for the template plugin
template_replace_values: {
username: "Some User",
staffid: "991234"
},
//setup:'tmceWordcount'
setup: function(ed) {
ed.onKeyUp.add(function(ed, e) {
//Following does not work correctly
//var strip = (tinyMCE.activeEditor.getContent()).replace(/(<([^>]+)>)/ig,"");
//Neither does the code below
var strip = (tinyMCE.activeEditor.getContent()).replace(/<[^>]+>/g, "");
var text = strip.split(' ').length + " Words, " + strip.length + " Characters"
tinymce.DOM.setHTML(tinymce.DOM.get(tinyMCE.activeEditor.id + '_path_row'), text);
});
}
});
});
Hier ist mein Beispiel. Ich gebe das erste Wort ein als: Me
Wenn ich das erste Wort eintippe, zeigt es Zeichen und Wort richtig an. Aber sobald ich das Leerzeichen drücke, um das nächste Wort einzugeben, zeigt es an, dass die Zeichen 8 sind. Wie? IMO, einschließlich der HTML-Tags. Der HTML-Code ist wie für den oben eingegebenen Text folgt:
<p>Me </p>
I-Ausgang 1 Wort und 3 Zeichen (2 Zeichen + 1 Leerzeichen) sein erwarten. Aber es zeigt mir 5 weitere Charaktere. Wie ist das passiert & Wie kann ich es stoppen? Wenn Sie das nächste Wort eingeben, sobald Sie mit der Eingabe beginnen, wird die korrekte Anzahl der Zeichen angezeigt. Wenn Sie jedoch erneut auf "Space" tippen, werden weitere Zeichen hinzugefügt. Dieses Problem scheint also immer dann zu entstehen, wenn der Speicherplatz & eingegeben wird. Wie kann das behoben werden?
Hallo, danke für den Code. Ich habe beide oben genannten Codes ausprobiert und das gleiche Problem besteht weiterhin. Aus irgendeinem seltsamen Grund werden die HTML-Tags nicht entfernt. Es betrachtet sie. Es hätte den Text so eingeben sollen, wie er eingegeben wurde, aber stattdessen berücksichtigt er die HTML-Quelle. Ich habe es sogar zweimal angewendet, aber immer noch mit dem gleichen Effekt. Wenn Sie diesen Code ausprobieren, werden Sie feststellen, dass er die HTML-Ausgabe auch dann alarmiert, nachdem ich die Funktion replace angewendet habe: 'var strip = (tinyMCE.activeEditor.getContent()).ersetzen (/ <\/?[^>] +>/gi, ''); \t \t \t \t \t \t alert (strip.replace (/ <\/?[^>] +>/gi, '')); 'Alle Ideen, wie dieses Problem beheben? – Devner