使用TinyMCE Fitddle for Node Filter向锚点添加id属性

时间:2013-10-16 作者:C-Dog

我想在TineMCE中编辑anchor maker的代码,以便它将以下行粘贴到代码中:<a name="#ANCHOR" id="#ANCHOR"> 而不是:<a name="#ANCHOR"> 我在哪里可以找到一个包含这些内容设置的正确文件?

这是我的代码:

<script type="text/javascript">
tinyMCE.init({
        // General options
        mode : "textareas",
        theme : "advanced",
        plugins : "autolink,lists,spellchecker,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,imagemanager,filemanager",

        // Theme options
        theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect",
        theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
        theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
        theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,spellchecker,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,blockquote,pagebreak,|,insertfile,insertimage",
        theme_advanced_toolbar_location : "top",
        theme_advanced_toolbar_align : "left",
        theme_advanced_statusbar_location : "bottom",
        theme_advanced_resizing : true,
    width: "100%",
    height: "400",
    init_instance_callback: function(ed) {
      ed.serializer.addNodeFilter(\'a\', function(nodes) {
        tinymce.each(nodes, function(node) {
            node.attr(\'id\', node.attr(\'name\'));
        });
      });
    }
});
</script>

<form method="post" action="dump.php">
        <textarea name="content"></textarea>
</form>
我想我使用的是TincyMCE高级版本3.5.8。

在WordPress最新版本的“编辑帖子”页面的整个源代码中,我只看到tinyMCEPreInit的东西。。。我尝试将小提琴中的东西附加到数组中:

    init_instance_callback: function(ed) {
     ed.serializer.addNodeFilter(\'a\', function(nodes) {
       tinymce.each(nodes, function(node) {
           node.attr(\'id\', node.attr(\'name\'));
        });
      });
    }

1 个回复
SO网友:josh

不幸的是,WP-tinymce没有提供锚定功能的插件(plugin)。相反,它是tiny_mce.js WP在其“includes”目录中使用的文件。

那个文件是个怪物。。。但如果你把它弄干净。。您将注意到定义锚元素的两个实例。

其中一个看起来像这样(544行周围未统一):

if (b.anchor) {
    f += "#" + b.anchor
}
return f
另一个是这样的(659线附近未统一):

if (b.anchor) {
        c += "#" + b.anchor
    }
    b.source = c
我不确定将这两个属性更改为包含id属性的效果。。但我相信你会明白的;)

Tinymce Advanced与此无关,只是告诉主WP js文件包含该按钮(及其功能)。

至于从WP修改锚元素的过滤器。。。根据我的经验,我还没有见过一个。

结束

相关推荐

插入媒体按钮将始终添加到同一tinyMCE编辑器中

“插入媒体”按钮有问题。我有两个带有“添加媒体”按钮的tinyMCE实例。当我在两个tinyMCE中的一个中添加介质时,我的所有介质都将在此之后进入,无论我单击哪个插入介质按钮。例如,如果我通过单击tinyMCE-1的“我的媒体”按钮在tinyMCE-1中添加媒体,它会将我的媒体添加到“一切都好”中。但如果我现在想通过单击tinyMCE-2的media按钮在tinyMCE-2中添加另一个媒体,它将添加到tinyMCE-1上!我根本不明白为什么。我被困在这里好几天了。我检查了,activeEditor是ti