ueditor百度エディタ画像統計異常解決

3243 ワード

ueditorエディタは、入力した文字数を統計するときに、画像を入力するときに右下に表示される入力済み文字数の統計が小さくなり、繰り返しテストした結果、次のような問題が見つかりました.
  
画像を選択すると、エディタは画像(内部画像を使用している)として先に表示され、テストパスは以下の通りです.


 
フォームのコミット後、返されたurlを先ほど生成したsrcに再設定し、新しい表示からテストパスを以下のようにします.

C:Userslucky godDesktopu 7701委農工委事務自動化システムliuyi.jpg


 
しかし、問題は、内部を生成するとchangeイベントがトリガーされ、入力された文字数が統計され、src値を変更するとchangeイベントが新しい統計からトリガーされないため、得られた文字長とは異なることを示します.
 
解決策は、/ueditor 1_を開く4_3-utf8-jsp/ueditor.all.js(もちろんどのjsを参照してどれを修正するか)、メソッドinitUploadBtn()のコールバックメソッドcallback()を見つけて、以下のように変更します.
 
                     if(json.state == 'SUCCESS' && json.url) {
                            loader = me.document.getElementById(loadingId);
                            loader.setAttribute('src', link);
                            loader.setAttribute('_src', link);
                            loader.setAttribute('title', json.title || '');
                            loader.setAttribute('alt', json.original || '');
                            loader.removeAttribute('id');
                            domUtils.removeClasses(loader, 'loadingclass');

                            //2014-12-18   , change 
                            me.setContent(me.getContent());
                        }

また、画像をエディタにドラッグすると、次の処理が行われます.
sendAndInsertFile(file,editor)メソッドを見つけ、コードの一部を変更します.
		if (loader) {
                    loader.setAttribute('src', link);
                    loader.setAttribute('_src', link);
                    loader.setAttribute('title', data.title || '');
                    loader.setAttribute('alt', data.original || '');
                    loader.removeAttribute('id');
                    domUtils.removeClasses(loader, 'loadingclass');
                    //2014-12-18   , change 
                    me.setContent(me.getContent());
                }

 
その前に統計方法を変更する必要があります:(原文アドレス)http://blog.csdn.net/woshishui6501/article/details/9216411)
 
getContentLength: function (ingoneHtml, tagNames) {
            var count = this.getContent(false,false,true).length;
//   html , html   getContents 
            /*if (ingoneHtml) {
                tagNames = (tagNames || []).concat([ 'hr', 'img', 'iframe']);
                count = this.getContentTxt().replace(/[\t\r
]+/g, '').length; for (var i = 0, ci; ci = tagNames[i++];) { count += this.document.getElementsByTagName(ci).length; } }*/ return count; }