主题: IE下的kindeditor外部添加图片会自动加入绝对路径?
作者: GlintFactory, 发布日期: 2009-08-28 17:13:47, 浏览数: 14976

现在用的是kindeditor-3.2.1。在使用外部加入图片代码时。不管是使用KE.plugin["image"].insert(...)还是使用KE.util.insertHtml(...)。在IE浏览器下都会给图片路径自动加上域名。而在Firefox下则不会。

 

比如添加了一个1.jpg,使用plugin["image"]时,在FF下的代码就是:

<img src="1.jpg" width="99" height="99" border="0" alt="hello" title="hello" />

而在IE下的则被成:

<img src="http://localhost:8088/1.jpg" width="99" height="99" border="0" alt="hello" title="hello" />

 

 

 

使用KE.util.insertHtml(),后台传的是"<img src="1.jpg" border="0" />"。IE的,全部自动识别了:

<img src="http://localhost:8088/1.jpg" width="99" height="101" border="0" />

FF,Opera的则是:

<img src="1.jpg" border="0" />

后来发现,用原有的图片的“远程”,把"http://"去掉时插入图片时,IE也会自动的加上域名。FF则不会。

 

虽然都可以显示,但如果换了域名后不就挂了……

这个功能是本来做上去的吗?可不可以去掉。

作者: Roddy, 发布日期: 2009-08-28 17:42:55
这是IE的问题,目前可以设置siteDomains来解决,下一个版本会提供更完美的解决方案。
  1. siteDomains 
    指定多个网站域名,该域名的URL都会变成相对路径。例如:siteDomains = ['yourdomain.com', 'www.yourdomain.com'];默认值:[]
回复
作者: GlintFactory, 发布日期: 2009-08-28 18:11:41

siteDomains 可以改变(去掉)自动添加域名功能?我发现好像不太会用,帮忙看一下:

<script type="text/javascript" charset="utf-8" src="editor/kindeditor.js"></script>
<script type="text/javascript">
KE.show({
id : 'content1',
//siteDomains : ['', '']
//siteDomains : [],
//siteDomains : 'fdsfs'
siteDomains : ''  //这个是这么用吗???
});
function change(url)
{
alert(url);
KE.util.focus('content1'); 
KE.util.selection('content1'); 
//KE.util.insertHtml("content1", url);
//KE.util.insertHtml("content1", "<img src='" + url + "' border='0' alt='hello' />");
KE.plugin["image"].insert("content1", url, "hello", "99", "99", "0");
}
function inserImg(id, url, title, w, h, b)
    {    
        KE.util.focus(id); 
        KE.util.selection(id); 
        KE.plugin["image"].insert(id, url, title, w, h, b);
    }

</script>

后台调用:

protected void Button1_Click(object sender, EventArgs e)
{
try
{
FileUpload1.SaveAs(Server.MapPath(FileUpload1.FileName));
}
catch (Exception ex)
{
}

//Response.Write("<script>window.parent.change(\"<img src='" + FileUpload1.FileName + "' border='0' />\");</script>");
//Response.Write("<script>window.parent.change(\"" + FileUpload1.FileName + "\");</script>");
Response.Write("<script>window.parent.inserImg('content1', '" + FileUpload1.FileName + "', '" + FileUpload1.FileName + "', '99', '99', '0');</script>");
}


几个都试过,不知道是不是哪里用得不对。总是会自动的加上域名。

回复
作者: Roddy, 发布日期: 2009-08-28 21:54:37
KE.show({
id : 'content1',
siteDomains : ['localhost:8088']
});
回复
作者: GlintFactory, 发布日期: 2009-08-28 23:30:33

不行……只能去掉“http://”,别的都去不掉了。什么时候出下一个版本……

现在我知道我有多么的狠IE了。实在不管了,只有直接在网站里加一个更改原有文章的域名组件了。

不过又觉得没有必要,毕竟换域名后那些文章也算是老的了……嗯嗯,就这么决定了。

回复
作者: surge, 发布日期: 2009-11-09 16:39:25

期待解决方案

回复
作者: Magic, 发布日期: 2012-01-05 09:27:25
回复Roddy:我的3.5版的,好像也不太好使啊
回复
发表新帖 发表回复