补(2006-3-15整理)
实现富文本编辑组件中的插入图片功能
图片成功上传后得到服务器路径
当要将其显示在web页面上时,发现HTML代码中 src="......" 都会自动加上http://服务器名
这样将来如果更换服务器将会导致很多图片无法正常显示,必须通过update数据库来解决
查看代码,发现调用了DHTML中的TextRange对象的pasteHTML(str)方法
该方法是
将 HTML 文本粘贴入给定文本范围,替换范围内任何先前的文本和 HTML 元素。
执行该方法时候,会自动获取Web服务器名,并自动在src属性值中加上"http://服务器名" 这一段
解决方法:可以手动给img赋一个id,然后通过img对象.src属性来强行写入相对路径
[贴上项目中的涉及的部分js代码]
var uploadimageid = 0;
//在文本框显示插入的图片的
function addimage(){
uploadimageid++;
var today=new Date();
today=today.getTime();
uploadimageid=uploadimageid+today; //保证唯一
var insertimagetext="";
insertimagetext='<IMG id="uploadimage' + uploadimageid + '" SRC="';
insertimagetext+=imageurl;
insertimagetext+='"';
insertimagetext+='>';
var xman=frames ['Editor'].document.selection.createRange();
xman.pasteHTML(insertimagetext);
//执行pasteHTML方法后,再次强行写入相对路径
Editor.document.all["uploadimage" + uploadimageid].src = imageurl;
}