给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) 编辑 收藏 举报