如何在TinyMCE中动态替换内容?

28

我想在TinyMCE编辑器中将所有的{baseurl}关键字替换为正确的URL。 我该如何做?

例如,如果用户在编辑器中添加HTML <img src="{baseurl}/image.jpg" />,我希望在TinyMCE编辑器中看到此图像-因此将被替换为<img src="http://mydomain.com/image.jpg" />

有任何想法吗?

3个回答

58

以下是替换编辑器内容的代码。但你需要在正确的时间执行此操作。

var editor = tinymce.get('my_editor_id'); // use your own editor id here - equals the id of your textarea
var content = editor.getContent();
content = content.replace(/{\$baseurl}/g, 'http://mydomain.com');
editor.setContent(content);

很高兴能够帮忙 :) - Thariama
var editor = tinyMCE.get('my_editor_id'); 这个也可以工作。 - scarver2
@Thariama,是否可以从多个值中选择数据属性中的1个值?例如:<div data-arr="attr1 attr2 attr3">content</div> 我想仅在所有 <div> 标签的 data-arr 属性中将 attr2 替换为 attr4,而我不知道 attr2data-arr 属性中的确切位置(即可能是开头、中间或结尾)。我使用 ~= CSS 选择器在 JQuery 中循环遍历每个匹配的属性之一,但我的问题是,我如何在 TinyMCE 编辑器中反映这些更改呢? - Paras Shah
@ParasShah:为了避免这样的麻烦,您应该将每个值存储在自己的数据属性中。 - Thariama

2
使用此解决方案,我能够在不替换整个内容的情况下即时修改内容:
tinymce.init({
   setup: (editor)=>{
      editor.on('init', ()=>{
         $(editor.contentDocument).find('a').prop('title', 'my new title');
      });
   }
});

也许能帮到某些人 :)

1

我用了一个非常简单的代码,对我来说很有效

tinymce.get("page-content").setContent(''); // 'page-content' as the textarea id
tinymce.get("page-content").execCommand('mceInsertContent', !1, 'New content data');

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接