KindEditor使用问题记录

作者:Ray 2010年02月03日
1.创建问题:   如果是Ajax方式创建,只能使用KE.init与KE.create来创建   如果是非Ajax方式,只能通过Ke.show来创建。2.数据保存问题:  如果是所建即所得的方式来保存数据,需要使用setInterval(new Function('KE.util.setData("'+descId+'")'),500);           而使用SetInterval会导致默认值丢失的bug,因此需要将此段代码放到KE.g[id].afterCreate事件里面。  setData的修改:setData : function(id) { if (KE.g[id].srcTextarea)    var val=this.getData(id);  if(KE.g[id].srcTextarea.value!=val&&val)  {      var valLen=val.length;      var start=val.length-6;      if(valLen>=7 && val.substring(0,3)=="<p>" && val.lastIndexOf("</p>",start)==start)      {         val=val.substring(3,val.length-6);             this.setFullHtml(id,val);      }      KE.g[id].srcTextarea.value = val;      if(KE.g[id].srcTextarea.onchange)        KE.g[id].srcTextarea.onchange();  } } },   对P的处理是因为浏览器(IE,FF)如果全选编辑器的文字,再进行输入,则会默认生成P标签,在(CHROME)里不会出现。3.图标的处理,由于图标过多,会出现图标DIV宽度超过屏幕总宽度的问题,在Show MENU的时候进行了额外的处理:  this.show = function(checkWidth) { this.hide(); var id = arg.id; KE.g[id].hideDiv.style.display = ''; if(checkWidth) {    var bodyWidth=document.documentElement.clientWidth||document.body.clientWidth;    var leftX=parseInt(this.div.style.left);    if(leftX+452>bodyWidth)    {       leftX=bodyWidth-452-20;       this.div.style.left=leftX+"px";    } } KE.g[id].hideDiv.appendChild(this.div); };  4. 上传图片换成了自己的控件 5.IE里面过滤Word格式,可以不需要弹出纯文本粘贴框。 在KE.create最后加入这段代码:  KE.event.ctrl(KE.g[id].iframeDoc, 'V', function(e) {              KE.plugin['pastetextfromword'].click(id);          }); KE.plugin['pastetextfromword'] = { click : function(id) {     //KE.plugin['paste'].click(id);     //return;     if(window.clipboardData)          {                var text="";                try                {                    text=clipboardData.getData("Text");                   KE.util.selection(id);                                   text = text.replace( /&/g, '&amp;' ) ;                    text = text.replace( /</g, '&lt;' ) ;                    text = text.replace( />/g, '&gt;' ) ;                    text = text.replace(/\r\n|\n|\r/g, "<br />$&");                    KE.util.insertHtml(id, text);                }                catch(e)                {                   KE.plugin['plainpaste'].click(id);                }                           }         else           KE.plugin['plainpaste'].click(id);       }}; 6.对IE ShowModalDialog的支持:        在KE.create事件里面加入代码:   if(KE.browser.IE)   iframeDoc.body.contentEditable="True";       同时在创建工具栏的时候,对A元素的href从javascript:;修改为#(防止弹出一个新的窗口) 

标签:

Web技术

评论

添加评论


 

biuquote
  • 评论
  • 在线预览
Loading



Powered by BlogEngine.NET 1.4.5.0