【问题标题】:TinyMCE Replace Parent NodeTinyMCE 替换父节点
【发布时间】:2015-09-30 14:17:20
【问题描述】:

我正在开发一个 WordPress 插件,它向 TinyMCE 编辑器添加一个按钮。单击该按钮时,所需的行为应该是: 1. 如果所选文本不是短片的一部分(或者是短片),那么短码应该插入到 DOM 中。 2 如果不是,短代码应替换为新的。

第一个要求得到满足,但第二个没有。插入后,它会显示在可视化编辑器中,但在保存或切换到文本时不会保存或显示。这让我相信我没有直接编辑编辑器下面的对象,只有显示的对象。什么是正确的方法。请看以下函数:

...

  insertContent: function(){
    var atts  = '';
    var node  = tinyMCE.activeEditor.selection.getNode();
    var edit  = $(node).is('div.wp-arv-faq');

    jQuery('./$p/-sc-input').each(function() {
      atts = atts + jQuery(this).attr('name') + '=\"' + $(this).val() + "\" ";
    });

    var caption   = 'F.A.Q. ' + $('./$p/-sc-input[name="tax"] option:selected').text();
    var style     = $('./$p/-sc-input[name="style"] option:selected').text();
    atts += ' caption="' + caption + ' (' + style + ')"';

    if (edit){
      $(node).empty();

      tinyMCE.activeEditor.selection.setContent('[arv-faq ' + atts + '][/arv-faq]');      




    /$p/faqMCE.closeModal();
  },
...

请注意,“/$p/”对于我的构建过程是唯一的,应该被忽略。提前致谢

【问题讨论】:

    标签: javascript jquery wordpress tinymce


    【解决方案1】:

    从您的问题来看,您并不清楚您要做什么,但我猜您正在尝试将 html 代码插入编辑器。

    请务必在调用$(node).empty();后立即设置选择

    注意:您的所有标签和属性都需要使用 valid_elements 和 valid_children 配置参数配置为允许的标签和属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-18
      • 2014-08-27
      • 1970-01-01
      相关资源
      最近更新 更多