Javascript Wordpress/TinyMCE-Hook/Filter以添加目标="_“空白”;在url中

Javascript Wordpress/TinyMCE-Hook/Filter以添加目标="_“空白”;在url中,javascript,php,wordpress,tinymce,tinymce-4,Javascript,Php,Wordpress,Tinymce,Tinymce 4,我试了6个小时,似乎没有任何效果。我想在Wordpress编辑器-TinyMce中单击按钮添加target=“\u blank” 以下是我到目前为止所做的: 参考: functions.php add_action( 'init', 'droid_buttons' ); function droid_buttons() { add_filter( "mce_external_plugins", "droid_add_buttons" ); add_filter( 'mce

我试了6个小时,似乎没有任何效果。我想在Wordpress编辑器-TinyMce中单击按钮添加target=“\u blank”

以下是我到目前为止所做的:

参考

functions.php

    add_action( 'init', 'droid_buttons' );
function droid_buttons() {
    add_filter( "mce_external_plugins", "droid_add_buttons" );
    add_filter( 'mce_buttons', 'droid_register_buttons' );
}

function droid_add_buttons( $plugin_array ) {
    $plugin_array['droid'] = get_template_directory_uri() . '/js/text-button.js';
    echo get_template_directory_uri();
    return $plugin_array;
}

function droid_register_buttons( $buttons ) {
    array_push( $buttons, 'droid_title'); // droid_title
    return $buttons;
}
文本按钮.js

    (function() {
    tinymce.create('tinymce.plugins.Droid', {
    init : function(editor, url) {
    editor.addButton('droid_title', {
    title : 'Droid Title',
    cmd : 'droid_title',
    image : ''
    });

    editor.addCommand('droid_title', function() {
    var selected_text = editor.selection.getContent();
    var element = "http://www.google.com";
    var return_text = "";
    return_text = '<a href="'+element+'" class="droid_title" target="_blank">' + selected_text + '</span>';
    editor.execCommand('mceInsertContent', 0, return_text);
    });

    },

    });

    // Register plugin
    tinymce.PluginManager.add( 'droid', tinymce.plugins.Droid );
})();
(函数(){
create('tinymce.plugins.Droid'{
init:函数(编辑器,url){
editor.addButton('droid_title'{
标题:“机器人标题”,
cmd:“机器人名称”,
图像:“”
});
editor.addCommand('droid_title',function(){
var selected_text=editor.selection.getContent();
变量元素=”http://www.google.com";
var return_text=“”;
返回文本

但点击按钮后,url将变为www.google.com,如代码所示

我试图弄清楚我应该在js文件中给出什么作为我的元素变量,但没有弄清楚

我已经讨论了这里给出的解决方案:

在这里:

但无法解决问题。任何帮助都将非常有用。提前感谢您。

根据插件的说明,您需要在addButton事件中添加回调函数。在这次回调中,您应该能够完成所需的任务。 更新:请确保您在functions.php文件中有js文件的正确路径。在我的情况下,它似乎是
$plugin\u array['droid']=get\u template\u directory\u uri()。/assets/js/text button.js';
您是否错过了assets目录

试着这样做:

(function() {
        tinymce.create('tinymce.plugins.Droid', {
        init : function(editor, url) {
        editor.addButton('droid_title', {
        title : 'Droid Title',
        cmd : 'droid_title',
        image : '',
        onclick: function() {
            var selected_text = editor.selection.getContent();
            var element = "http://www.google.com";
            var return_text = "";
            return_text = '<a href="'+element+'" class="droid_title"  target="_blank">' + selected_text + '</span>';
            editor.insertContent(return_text);
           }
        });
(函数(){
create('tinymce.plugins.Droid'{
init:函数(编辑器,url){
editor.addButton('droid_title'{
标题:“机器人标题”,
cmd:“机器人名称”,
图像:“”,
onclick:function(){
var selected_text=editor.selection.getContent();
变量元素=”http://www.google.com";
var return_text=“”;

return_text='

你试过onclick回调函数吗?嗨@AwladLiton,我不明白你的意思!你能解释一下吗?请检查这个:@ankit pandey请测试一下,让我知道它是否工作。我在本地测试过,它工作得很好。谢谢你的解决方案。它工作了。尽管我试着给元素变量赋值为:var elemt=tinymce.activeEditor.selection.getNode();它也起作用。请标记此答案,以便其他人也可以获得帮助。谢谢!接受了您的答案