TinyMCE 替换父节点
TinyMCE Replace Parent Node
我正在开发一个 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/' 是我的构建过程所独有的,应该被忽略。提前致谢
从你的问题来看,你想做什么并不完全清楚,但我猜你想在编辑器中插入 html 代码。
确保在调用 $(node).empty();
后立即设置选择
注意: 您的所有标签和属性都需要使用 valid_elements 和 valid_children 配置参数配置为允许的标签和属性。
我正在开发一个 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/' 是我的构建过程所独有的,应该被忽略。提前致谢
从你的问题来看,你想做什么并不完全清楚,但我猜你想在编辑器中插入 html 代码。
确保在调用 $(node).empty();
注意: 您的所有标签和属性都需要使用 valid_elements 和 valid_children 配置参数配置为允许的标签和属性。