IE中的execCommand行为:CLEditor图像覆盖问题

时间:2010-11-20 13:48:06

标签: javascript jquery internet-explorer wysiwyg

我在我的网站中使用CLEditor,在使用IE时遇到问题。问题是:当您插入图像并将其放在编辑器中然后插入另一个图像时,它将覆盖prevoius图像。使用Firefox,它会将新的一个放在prevoius旁边。我联系了CLEditor,他告诉我这是一个浏览器问题。他邀请我通过检查IE来解决问题,然后在插入图像后使用TextRange.collapse()方法将当前范围折叠到最后。我试图让这个灵魂化,但我不是Javascript的专家,使其工作。我需要你的帮助才能让它发挥作用。

这是将图像插入编辑器区域的代码:

.bind(CLICK, function() {

  // Insert the image or link if a url was entered
  var $text = $popup.find(":text"),
    url = $.trim($text.val());
  if (url !== "")
    execCommand(editor, data.command, url, null, data.button);

  // Reset the text, hide the popup and set focus
  $text.val("http://");
  hidePopups();
  focus(editor);

});

1 个答案:

答案 0 :(得分:0)

这是此问题的解决方案。解决这个问题需要三天时间,因为我不是JavaScript专家。我希望这会有所帮助。

      .bind(CLICK, function() {

          // Insert the image or link if a url was entered
          var $text = $popup.find(":text"),
            url = $.trim($text.val());
          if (url !== "")
            execCommand(editor, data.command, url, null, data.button);

          // Reset the text, hide the popup and set focus
          $text.val("http://");
          hidePopups();
          if ($.browser.msie) {
    var editorvalue=editor.$frame[0].contentWindow;   
    var pos = editorvalue.document.body.innerHTML.length;
    var textRange = editorvalue.document.body.createTextRange();
    textRange.collapse(true);
    textRange.moveEnd("character", pos);
    textRange.moveStart("character", pos);
    textRange.select();


  }

          focus(editor);

        });