Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var head = document.getElementsByTagName('head')[0];
- var script = document.createElement('script');
- script.type = 'text/javascript';
- script.src = 'http://code.jquery.com/jquery-latest.min.js';
- script.onload = function()
- {
- /**/
- String.prototype.regexLastIndexOf = function(regex)
- {
- regex = (regex.global)?regex:new RegExp(regex.source,'g'+(regex.ignoreCase ?'i':'')+(regex.multiLine?'m':''));
- var stringToWorkWith = this.substring(0,this.length+1);
- var lastIndexOf = -1;
- var nextStop = 0;
- while((result = regex.exec(stringToWorkWith)) != null)
- {
- lastIndexOf = result.index;
- regex.lastIndex = ++nextStop;
- }
- return lastIndexOf;
- }
- removeXcharsfromHTML = function(str,nb)
- {
- str = str.replace(/([ |&|&]*)</ig,'<').replace(/([\s\n\r\t]*)</ig,'<');
- console.log(str);
- for (var i=0; i<nb; i++)
- {
- var n = str.regexLastIndexOf(/[^<>]</);
- if (n==-1)
- break;
- str = str.substring(0,n)+str.substring(n+1,str.length);
- }
- return str;
- }
- var textareas_html_OK = [];
- var textareas_cursorpos_OK = [];
- function limit_chars(id,nb)
- {
- textareas_html_OK[id] = false;
- textareas_cursorpos_OK[id] = false;
- $('#'+id).parent().append('<div id="'+id+'-limiter"></div>');
- setInterval(function()
- {
- var htm = CKEDITOR.instances[id].getData();
- var txt = $(htm).text();
- var lgt = txt.length;
- var rem = nb-lgt;
- if (rem>=0)
- {
- textareas_html_OK[id] = htm;
- if (CKEDITOR.instances[id].getSelection().getRanges()[0])
- textareas_cursorpos_OK[id] = CKEDITOR.instances[id].getSelection().getRanges()[0].startOffset;
- $('#'+id+'-limiter').html('<span style="color: '+((rem<=10)?'#ff530d; font-weight: bold':'#000000')+';">'+((rem>0)?rem:'Aucun')+' caractère'+((rem>1)?'s':'')+' restant'+((rem>1)?'s':'')+'</span>');
- }
- else
- {
- if (textareas_html_OK[id])
- {
- CKEDITOR.instances[id].setData(textareas_html_OK[id]);
- if (textareas_cursorpos_OK[id])
- {
- /**///alert(textareas_cursorpos_OK[id]);//ici il faudrait réussir à mettre le curseur à la bonne position
- }
- }
- else
- {
- setTimeout(function()
- {
- htm = removeXcharsfromHTML(htm,-rem);
- CKEDITOR.instances[id].setData(htm);
- },10);
- }
- $('#'+id+'-limiter').html('<b style="color:#ff0000;">Le texte est trop long de '+(-rem)+' caractère'+((rem<-1)?'s':'')+', réduisez le ou il sera tronqué !</b>');
- }
- },100);
- }
- limit_chars('entreprise_presentation',3000); // limite la longueur du champ dont l'id est "entreprise_presentation" à 3000 caractères.
- limit_chars('entreprise_propositions',100); // limite la longueur du champ dont l'id est "entreprise_propositions" à 100 caractères.
- /**/
- }
- head.appendChild(script);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement