CLEditor - 添加目标=“_空白”

时间:2016-12-07 08:36:19

标签: jquery execcommand cleditor

我一直在与CLEditor斗争几个小时试图实现一个简单的添加 - 添加target =“_ blank”选项复选框的可能性。 代码是这样的:

 if (url != "") {


   if ($("#blank").is(':checked')) {


     editor.doc.execCommand("insertHTML", false, '<a href="' + url + '" target="_blank">' + selectedText(editor) + '</a>');

   } else {

     execCommand(editor, data.command, url, null, data.button);

   }

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

 }

它可以很好地保存一个奇怪的故障 - 我必须在链接WITH target =“_ blank”之后点击可编辑区域以便能够保存它。 我可以在DOM中看到新添加的链接 - 如果我不点击该区域(任何地方) - 我将无法保存它。

我正在使用execCommand(“insertHTML”..)添加它,而没有target =“_ blank”的链接正在插入execCommand(editor,data.command,url,null,data.button);而且没有这样的问题。

什么可能导致这样的问题?

没有PHP部分的整件事: https://jsfiddle.net/rzj0f334/

1 个答案:

答案 0 :(得分:0)

奇怪的解决方法,无论如何都不能被视为正确的答案。我做的是这个:

if ($("#blank").is(':checked')) {

  editor.doc.execCommand("insertHTML", false, '<a href="' + url + '" target="_blank">' + selectedText(editor) + '</a>');

    // copy all the editor's iframe HTML and send it to textarea    (queer solution but that's all I was able to come up with)
    var iframe_content = $('#666').contents().find("body").html();
    $('#input').html(iframe_content);

  } else {

    execCommand(editor, data.command, url, null, data.button);

  }

绝对不是最好的方法,但至少它是有效的。我会非常欣赏一个更好的解决方法。