<SCRIPT language=javascript>
parent.HtmlEdit.focus();                                               //获得焦点
var sel = parent.HtmlEdit.document.selection.createRange();           //创建选择区
 sel.pasteHTML("<img src=‘***.jpg' border=0>");                       //粘贴html来替换选择区域范围内的html   
alert('上传文件成功!');
history.go(-1);
</script>以上是编辑器页面执行后生成的代码!当向编辑框内插入一张图片后,并使图片处于选中状态,再上传一张图片,将会出错,好像是createRange获取不到值。 HtmlEdit.document.designMode="On";                  //使IFRAME处于编辑状态后,在编辑框内的图片上点击鼠标左键,
                                                      图片变为选中状态,并允许在编辑框内改变大小和位置。从理论上讲, 避免此问题发生的办法
1、图片在被选中状态时,如再次上传图片,可报错(重新上传第二张图片)。 
2、图片在被选中状态时,如再次上传图片,可转移焦点 (成功上传第二张图片)。 
3、图片在被选中状态时,如再次上传图片,覆盖被选中图片,(这种方法应该是最好的) 从某种意义上讲,当选中编辑框内的图片后,无论是上传第二张图片,或是点击工具栏上的字体加粗、改变颜色等其它按钮选项,都会毫无反映,即不报错,也不执行,这就是问题的所在了,点击加粗,因为是针对字体的加粗,而图片不能加粗,虽不报错也就罢了,但是如果继续上传第二张图片,在这种情况下却上传不了!因为图片可处于选中状态及改变大小的功能,不是用自编代码实现的,而是当IFRAME处于编辑状态后(designMode="On"; )就有了,所以不知道该如何修改这个问题,还望高手们赐教!!在此谢过!

解决方案 »

  1.   

    1、正常上传图片是没问题的,
    2、传第二张图片时(如果不选中第一张图片)也是没问题的,
    3、选中文字后,上传图片,文字正常被覆盖!
    也就是说在一定条件下,代码是没问题的,只有出现上面描述的错误时,才会没有任何提示,而是出现个空白页,页面代码为
    <SCRIPT language=javascript>
    parent.HtmlEdit.focus(); //获得焦点
    var sel = parent.HtmlEdit.document.selection.createRange(); //创建选择区
     sel.pasteHTML("<img src=‘***.jpg' border=0>"); //粘贴html来替换选择区域范围内的html   
    alert('上传文件成功!');
    history.go(-1);
    </script>
      

  2.   

    事件应该是触发的,只是感觉createRange在异常情况(错误图中所示状态)下,获取不到值。  从而导致的代码执行不下去,但我又不知道该如何修改?