Javascript TinyMCE-用于包装选择而不是选择周围标记的按钮
在WordPress中,我添加了一个自定义编辑器按钮来获取选择的内容,并将其包装在一个短代码中。内容未获取所选内容周围的标记 例如:Javascript TinyMCE-用于包装选择而不是选择周围标记的按钮,javascript,wordpress,tinymce,Javascript,Wordpress,Tinymce,在WordPress中,我添加了一个自定义编辑器按钮来获取选择的内容,并将其包装在一个短代码中。内容未获取所选内容周围的标记 例如: <h1>Heading text</h1> 如何获取包含标记(或类似标记)的内容。我是否使用了错误的函数来获取内容,或者是否缺少某个设置?我尝试了.getnode(),但得到了相同的结果。如果您想使用单个块标记执行某些操作,那么getnode是您的最佳选择。如果您在开发工具中打开控制台的情况下查看这一点,请尝试选择一行,然后尝试同时选择两
<h1>Heading text</h1>
如何获取包含
标记(或类似标记)的内容。我是否使用了错误的函数来获取内容,或者是否缺少某个设置?我尝试了.getnode()
,但得到了相同的结果。如果您想使用单个块标记执行某些操作,那么getnode是您的最佳选择。如果您在开发工具中打开控制台的情况下查看这一点,请尝试选择一行,然后尝试同时选择两行。getNode()和getContent()的行为会根据选择的不同而有所不同
getNode()返回所选元素,但如果选择了多个元素,则返回(在本例中为body)
如果选择多个块,getSelection()将返回标记,这就是为什么它在尝试环绕多个块标记时工作 你找到解决这个问题的办法了吗?
<h1>[shortcode]Heading Text[/shortcode]</h1>
[shortcode]<h1>Heading Text</h1>[/shortcode]
<h1>Header</h1>
<h2>Sub-Header</h2>
[shortcode]<h1>Header</h1>
<h2>Sub-Header</h2>[/shortcode]
(function() {
tinymce.create('tinymce.plugins.zgwd', {
init : function(ed, url) {
ed.addButton('headerblock', {
title : 'Add a Header Block',
cmd: 'headerblock',
});
ed.addCommand('headerblock', function() {
var selected_text = ed.selection.getContent({ format: 'html' });
var return_text = '';
if( !(selected_text && selected_text.length > 0) ) {
selected_text = 'Add header block text here';
}
return_text = '[header-block]' + selected_text + '[/header-block]';
ed.execCommand('mceInsertContent', 0, return_text);
});
},
createControl : function(n, cm) {
return null;
},
});
tinymce.PluginManager.add('zgwd', tinymce.plugins.zgwd);
})();