主题: KE.html 莫名错误,求助
作者: jt158, 发布日期: 2011-04-09 17:32:51, 浏览数: 5933

setKEHtml: function(editorName, val) {
        alert(val);
        KE.html(editorName, val);
        objThis.getKEHtml(editorName);
    },

执行之前 图片中 url =http://localhost:4685/Upload/images/20110409142337_0937.jpg

 

执行 KE.html(editorName, val); 方法之后

图片中 url = http://localhost:4685/web/"http://localhost:4685/Upload/images/20110409142337_0937.jpg

 

url 中多了 http://localhost:4685/web/'' 导致图片无法正确显示

请问如何修改呢


 

作者: jt158, 发布日期: 2011-04-09 17:33:37

为什么会这样呢

回复
作者: Roddy, 发布日期: 2011-04-09 18:20:26
KindEditor版本多少?我在3.5.2上测试过,没发现问题。
回复
作者: jt158, 发布日期: 2011-04-09 18:52:53

我的是3.5.2  用的是asp.net,上传路径我设置为/Upload/images/

回复
作者: Roddy, 发布日期: 2011-04-09 19:14:30
KE.html是JS函数,和服务器程序语言无关。是不是服务器返回时URL里多了引号?还有,请告诉我浏览器版本。
回复
作者: jt158, 发布日期: 2011-04-09 19:19:07

ie6

setFullHtml : function(id, html) {
  var g = KE.g[id];
  if (!KE.browser.IE && html === '') html = '<br />';
  var html = KE.util.execSetHtmlHooks(id, html);
  this.innerHtml(g.iframeDoc.body, html);
  if (!g.wyswygMode) g.newTextarea.value = KE.util.getData(id, true);
  KE.util.execOnchangeHandler(id);
 },

图片上传成功之后, 得到的src=&quot;http://localhost:4685/Upload/images/20110409194552_4375.jpg&quot;是这个

KE.util.execOnchangeHandler(id);在执行执行这句话之后,url就变了

回复
作者: Roddy, 发布日期: 2011-04-09 19:36:49

这里可能有问题,把autoSetDataMode关掉看看。不过这样的话需要手动同步数据,需要在提交之前执行KE.util.setData函数。

KE.show({
    id : 'editor_id',
    autoSetDataMode : false
});

 

或者直接把KE.util.execOnchangeHandler(id);注释掉也可以。

回复
作者: jt158, 发布日期: 2011-04-09 19:49:34

escape : function(str) {
  str = str.replace(/&/g, '&amp;');
  str = str.replace(/</g, '&lt;');
  str = str.replace(/>/g, '&gt;');
  str = str.replace(/"/g, '&quot;');
  return str;
 }

原来问题出在这里,我调用他之后,后台只转了 (/</g, '&lt;')和(/>/g, '&gt;'); 没有转义另外两个, 这样url中多了&quot; 这个,但是为什么会自动在前面加上http://localhost/web/''这个东西呢????

谢谢 你的指导 现在我把四个转义全转化就正常了
 

回复
作者: Roddy, 发布日期: 2011-04-09 20:17:48
不转义会出现歧义的,因为浏览器不知道你要的是"还是&quot;
回复
作者: jt158, 发布日期: 2011-04-09 21:54:21
 非常感谢 Roddy  热情解答
回复
发表新帖 发表回复