【问题标题】:Replacing something in Editor?替换编辑器中的内容?
【发布时间】:2012-11-10 18:01:32
【问题描述】:

我已经想出了如何在 Wpres 的编辑器中使用以下方法获取选定的文本:

我需要用链接替换一些文本工作,但不知道如何,任何帮助将不胜感激。

【问题讨论】:

  • jQuery("#content_ifr").prop("contentWindow").getSelection().toString() 为我工作。职位不是那么容易——职位到底是什么意思?它不是一个纯文本区域,它只是一个索引。
  • 在文档准备就绪时,我猜没有选择任何内容,因此您收到一个空警报。您必须在选择某些内容后运行它。
  • 查看我替换文本的答案 - 您需要获取 anchorNode 元素。 @pimvdb 是正确的,您不能将此事件附加到 document.ready(),因为没有选定的文本,并且还没有设置编辑器。

标签: javascript jquery wordpress iframe tinymce


【解决方案1】:

如果要在可视化编辑器中获取当前选中文本的文本值:

var content = jQuery("#content_ifr").prop("contentWindow");
var selected = content.getSelection();
var selectedText = selected.toString();

如果你想用一个新的值替换选中的文本,除了上面的变量之外,只需使用这个即可:

var newText = "This is the new text";
jQuery(selected.anchorNode).replaceWith(newText);

或者在您想要使用链接的情况下:

var linkText = "<a href='yourlink.html'>"+selectedText+"</a>";
jQuery(selected.anchorNode).replaceWith(linkText);

【讨论】:

    【解决方案2】:

    使用 tinymce API 的简单方法:

    得到选择

    tinymce.get('your_editor_id').selection
    

    替换选择

    tinymce.get('your_editor_id').execCommand('insertHTML',false,'your text')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-02
      • 2022-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多