给FreeTextBox添加上传图片功能(续)

《给FreeTextBox添加上传图片功能》中我们实现了图片上传的功能,但在实际使用中,我又发现了一些小问题,比如自动加上域名,给网站的迁移带来了不便,如下图。经过一番研究,终于圆满解决了这些小难题,以本文形式做个记录,也与大家分享。

 

原先的思路是上传后返回“<img src=/InsertImageDemoNew/upload/200807082241422682.jpg />”,然后插入到编辑框中,但发现实际插入的代码是“<IMG src="http://localhost:21838/InsertImageDemoNew/upload/200807082241422682.jpg">”,编辑器自动为我们加了域名:(。

在看了FreeTextBox的JS后发现了ExecuteCommand这个函数,可以让我们很方便的创建出IMG对象。我们先扩展一个叫做InsertPureSrc的方法:

FTB_FreeTextBox.prototype.InsertPureSrc = function(imgSrc) {
if (imgSrc != '') {
this.ExecuteCommand('insertimage',null,imgSrc);
}
}

其中的imgSrc就是图片的地址,然后我们再修改一下图片上传成功的返回内容:

//string s = "<img src=";
//s += this.ResolveUrl(newPath);
//s += " />";
string s = this.ResolveUrl(newPath);
Response.Write(@"
<script>
opener.InsertText('" + s + @"');
window.close();
</script>
");
Response.End();

直接返回图片的地址,最后修改InsertText里调用的函数为我们上面添加的InsertPureSrc:

function InsertText(textToInsert) {
FTB_API['<%=FreeTextBox1.ClientID %>'].InsertPureSrc(textToInsert);
}

这样就完成了,上传个图片试一下,发现现在插入的就是我们返回的内容了,没有自动加上域名,如下图。

 

posted on 2008-07-09 08:18  Superstone  阅读(2505)  评论(4编辑  收藏  举报

导航