通过jQuery将触发html代码片段的按钮添加到tinyMCE编辑器中

通过jQuery将触发html代码片段的按钮添加到tinyMCE编辑器中,jquery,tinymce,Jquery,Tinymce,我正在为一个应用程序中的Tinymce编辑器工具栏添加一个按钮,该按钮将粘贴到为编辑器中的内容定制的内容表的html代码中 例如,对于编辑器中找到的每个h级别标记(h1-h3),我希望插入一段html(包含目录*)并在目录html片段之前将注释标记粘贴到源标记中 有人能推荐一个关于如何与tinyMCE API交互的示例教程,以便向编辑器添加一个按钮,该按钮触发本地jQuery函数以与编辑器的内容交互吗 我的html片段将是: <!--nextpage--> <div class

我正在为一个应用程序中的Tinymce编辑器工具栏添加一个按钮,该按钮将粘贴到为编辑器中的内容定制的内容表的html代码中

例如,对于编辑器中找到的每个h级别标记(h1-h3),我希望插入一段html(包含目录*)并在目录html片段之前将注释标记粘贴到源标记中

有人能推荐一个关于如何与tinyMCE API交互的示例教程,以便向编辑器添加一个按钮,该按钮触发本地jQuery函数以与编辑器的内容交互吗

我的html片段将是:

<!--nextpage-->
<div class="toc">
    <h3>Table of Contents</h3>
    <ul>
        <li><a href="http://mysite.com/article-slug/">Introduction</a></li>
        <li><a href="http://mysite.com/article-slug/2">First h1-h3 heading</a></li>
        <li><a href="http://mysite.com/article-slug/3">Next h1-h3 heading</a></li>
    </ul>
</div>

目录

但是jQuery会根据页面URL和h1-h3元素的数量专门为该页面动态生成内容,因此,TOC是根据页面结构为用户动态生成的。

只是想让您了解如何在WordPress
tinyMCE
编辑器中添加按钮,并使用该按钮将内容插入编辑器。在这个答案的底部,我提供了我的插件链接,你可以直接下载它,并可以看到源代码

下面的代码是直接从我的
WordPress
插件中复制的,我开发了该插件,使用自定义
按钮将
shortcode
添加到编辑器中。此代码段转到
functions.php

add_action( 'init', 'my_js_fiddle_init');
function my_js_fiddle_init() {
    if ( ! current_user_can('edit_posts') && ! current_user_can('edit_pages') ) {
        return;
    }
    if ( get_user_option('rich_editing') == 'true' ) {
        // call the add_plugin function to register the plugin(js) for tinyMCE
        add_filter( 'mce_external_plugins', 'add_plugin' );
        // call the function register_button to add a new button in the editor
        add_filter( 'mce_buttons', 'register_button' );
    }
}

function register_button($buttons) {
    array_push( $buttons, "|", "wpjsfiddle" );
    return $buttons;
}

function add_plugin($plugin_array) {
    //$plugin_array['wpjsfiddle'] = plugins_url('js/wp_js_fiddle.js', __FILE__ );
    $plugin_array['wpjsfiddle'] ="tinyMCE_plugin_file";
    return $plugin_array;
}
这是你的
tinyMCE
插件,创建一个
js
文件并将代码放在这个文件中,例如,你可以将它命名为
tinyMCE\u plugin\u file.js
,我在
add\u plugin
函数中使用了这个名称

(function() {
    tinymce.create('tinymce.plugins.wpjsfiddle', {
        init : function(ed, url) {
            ed.addButton('wpjsfiddle', {
                title : 'Insert Js Fiddle',
                image : url+'/images/jsfiddle-icon.png',
                onclick : function() {
                var contentToInsert='this line will be inserted'; // change this
                ed.execCommand('mceInsertContent', false, contentToInsert);
            }
          });
      },
      createControl : function(n, cm) {
        return null;
      },
      getInfo : function() {
        return {
            longname : "Wp Js Fiddle",
            author : 'Sheikh Heera',
            authorurl : 'http://heera.it',
            version : "1.0"
         };
      }
    });
    tinymce.PluginManager.add('wpjsfiddle', tinymce.plugins.wpjsfiddle);
})();

您还可以从WordPress插件目录中查看源代码。希望对您有所帮助。

只是想告诉您如何在WordPress
tinyMCE
编辑器中添加一个按钮,并使用该按钮将内容插入编辑器。在这个答案的底部,我提供了我的插件链接,你可以直接下载它,并可以看到源代码

下面的代码是直接从我的
WordPress
插件中复制的,我开发了该插件,使用自定义
按钮将
shortcode
添加到编辑器中。此代码段转到
functions.php

add_action( 'init', 'my_js_fiddle_init');
function my_js_fiddle_init() {
    if ( ! current_user_can('edit_posts') && ! current_user_can('edit_pages') ) {
        return;
    }
    if ( get_user_option('rich_editing') == 'true' ) {
        // call the add_plugin function to register the plugin(js) for tinyMCE
        add_filter( 'mce_external_plugins', 'add_plugin' );
        // call the function register_button to add a new button in the editor
        add_filter( 'mce_buttons', 'register_button' );
    }
}

function register_button($buttons) {
    array_push( $buttons, "|", "wpjsfiddle" );
    return $buttons;
}

function add_plugin($plugin_array) {
    //$plugin_array['wpjsfiddle'] = plugins_url('js/wp_js_fiddle.js', __FILE__ );
    $plugin_array['wpjsfiddle'] ="tinyMCE_plugin_file";
    return $plugin_array;
}
这是你的
tinyMCE
插件,创建一个
js
文件并将代码放在这个文件中,例如,你可以将它命名为
tinyMCE\u plugin\u file.js
,我在
add\u plugin
函数中使用了这个名称

(function() {
    tinymce.create('tinymce.plugins.wpjsfiddle', {
        init : function(ed, url) {
            ed.addButton('wpjsfiddle', {
                title : 'Insert Js Fiddle',
                image : url+'/images/jsfiddle-icon.png',
                onclick : function() {
                var contentToInsert='this line will be inserted'; // change this
                ed.execCommand('mceInsertContent', false, contentToInsert);
            }
          });
      },
      createControl : function(n, cm) {
        return null;
      },
      getInfo : function() {
        return {
            longname : "Wp Js Fiddle",
            author : 'Sheikh Heera',
            authorurl : 'http://heera.it',
            version : "1.0"
         };
      }
    });
    tinymce.PluginManager.add('wpjsfiddle', tinymce.plugins.wpjsfiddle);
})();

您还可以从WordPress插件目录中查看源代码。希望能有所帮助。

一旦你将页面发送到浏览器,wordpress就变得无关紧要了。。浏览器不知道wordpress的存在。您需要使用tinyMCE API将内容附加到编辑器。使用编辑器API方法获取编辑器后,您可以使用jQuery操作编辑器的现有内容。我将修改问题以避免混淆。您可以在
tinyMCE
编辑器中添加按钮,也可以通过该按钮插入新文本或短代码,但我对你的问题感到困惑。我怀疑你能否找到一个来源来回答所有问题。很容易找到如何添加按钮并单击按钮的处理程序。还可以轻松找到如何使用API访问内容。然后需要解析html,这在jQuery中也是相当简单的。建议你们在做了一些家庭作业后完善问题,并在将页面发送到浏览器后启动一些代码..wordpress变得不相关。。浏览器不知道wordpress的存在。您需要使用tinyMCE API将内容附加到编辑器。使用编辑器API方法获取编辑器后,您可以使用jQuery操作编辑器的现有内容。我将修改问题以避免混淆。您可以在
tinyMCE
编辑器中添加按钮,也可以通过该按钮插入新文本或短代码,但我对你的问题感到困惑。我怀疑你能否找到一个来源来回答所有问题。很容易找到如何添加按钮并单击按钮的处理程序。还可以轻松找到如何使用API访问内容。然后需要解析html,这在jQuery中也是相当简单的。建议你在做了一些家庭作业并开始编写一些代码后完善问题