Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript TinyMCE-用于包装选择而不是选择周围标记的按钮_Javascript_Wordpress_Tinymce - Fatal编程技术网

Javascript TinyMCE-用于包装选择而不是选择周围标记的按钮

Javascript TinyMCE-用于包装选择而不是选择周围标记的按钮,javascript,wordpress,tinymce,Javascript,Wordpress,Tinymce,在WordPress中,我添加了一个自定义编辑器按钮来获取选择的内容,并将其包装在一个短代码中。内容未获取所选内容周围的标记 例如: <h1>Heading text</h1> 如何获取包含标记(或类似标记)的内容。我是否使用了错误的函数来获取内容,或者是否缺少某个设置?我尝试了.getnode(),但得到了相同的结果。如果您想使用单个块标记执行某些操作,那么getnode是您的最佳选择。如果您在开发工具中打开控制台的情况下查看这一点,请尝试选择一行,然后尝试同时选择两

在WordPress中,我添加了一个自定义编辑器按钮来获取选择的内容,并将其包装在一个短代码中。内容未获取所选内容周围的标记

例如:

<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);
})();