我在 TinyMCE 可视化编辑器中添加了一个自定义按钮。此按钮将所有突出显示的单词包装在<em>
带有 class 的标签中tle
。因此,如果您突出显示术语Pulp Fiction
并单击按钮,您将获得<em class="tle">Pulp Fiction</em>
.
JS代码:
(function() {
tinymce.PluginManager.add('custom_em', function( editor, url ) {
editor.on('init', function(e) {
this.formatter.register('reftitle', {
inline : 'em',
classes : 'tle'
});
});
editor.addButton('custom_em', {
text: 'Title (italic)',
icon: false,
onclick : function() {
var contents = editor.selection.getContent(),
tags = jQuery(contents).find('em.tle').andSelf();
if (tags.length) {
editor.formatter.remove('reftitle');
} else {
editor.formatter.apply('reftitle', {value: contents});
}
}
});
});
})(jQuery);
它工作得很好,但它不会格式化任何包含任何特殊字符的术语。它仅适用于字符 AZ 和 0-9。
例如,X-Men: Days of Future Past
将不起作用,因为它包含:
. 在控制台中,它给出错误:Syntax error, unrecognized expression
。
为什么它不能正常工作?猜测这是我的 onclick 功能的问题。希望这里有 jQuery 或 TinyMCE 大师。