Разрешение пользовательских тегов в TinyMCE для интеграции с indexhibit
Я пытаюсь разрешить ввод пользовательских тегов в TinyMCE. Тег
<plug:plugin_name />
Однако это превращается в
<plug:plugin_name></plug:plugin_name>
Я собираюсь написать регулярное выражение, чтобы справиться с этим, так как мне нужно выполнить эту работу, я бы предпочел, но это исправит мою проблему.
Я пробовал много вариантов init:
extended_valid_elements : "plug.plugin_name[*]",
custom_elements: "plug.plugin_name[*]",
verify_html : false, **//This ment that the tag wasn't ouright removed**
selfclosetags : \" />\", //some plugin I found, didn't seem to work
closed : /^(br|hr|input|meta|img|link|param|area|plug:plugin_name)$/,
Кто-нибудь еще определенно получил это, чтобы работать с последней версией TinyMCE?
Кроме того, другая проблема будет в том, что редактор отключит тэг, после того как я исправил его с помощью регулярного выражения!
Ответы
Ответ 1
Вам просто нужно добавить его в список коротких элементов:
extended_valid_elements : "plug:plugin_name[*]",
custom_elements: "~plug:plugin_name[*]",
short_ended_elements: 'area base basefont br col frame hr img input isindex link meta param embed source wbr track plug:plugin_name'
Здесь fiddle, чтобы продемонстрировать.
Ответ 2
Вместо:
closed : /^(br|hr|input|meta|img|link|param|area|plug:plugin_name)$/,
Это работает?
closed : /^(br|hr|input|meta|img|link|param|area|plug)$/,
Обратите внимание на последний элемент "plug" без модификатора:
Ответ 3
Вы пробовали этот вариант?
valid_elements: "a,br,span,plug:plugin_name,another:tag"
Ответ 4
Вы можете использовать метод кодирования как необработанный для любого типа данных.
tinyMCE.init({
encoding : "raw"
})
Ответ 5
-
Сначала создадим пользовательский плагин для вашего редактора Tinymce 4. и затем добавим пункт меню для этого плагина:
tinymce.PluginManager.add('YOUR_CUSTOM_PLUGIN_NAME_HERE', function(editor, url){
//add first menu item
editor.addMenuItem('YOUR_MENU_ITEM1_CUSTOM_NAME_HERE', {
text: 'Menu Item 1',
context: 'YOUR_CUSTOM_DROP_DOWN_MENU_NAME',
onclick: function() {
//make the magic happen when the user click this menu here...
} });
вы закончили создание пользовательских плагинов и пользовательских элементов меню, фактически добавив их в редактор Tinymce 4. Это будет сделано в методе tinymce.init:
tinymce.init({
selector: "textarea",
plugins: "YOUR_CUSTOM_PLUGIN_NAME_HERE",
toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image",
//this is how you will get your custom menu like in the above image
menu : {
YOUR_CUSTOM_DROP_DOWN_MENU_NAME: {
title: 'Name it whatever you like here',
items: 'YOUR_MENU_ITEM1_CUSTOM_NAME_HERE YOUR_MENU_ITEM2_CUSTOM_NAME_HERE YOUR_MENU_ITEM3_CUSTOM_NAME_HERE'
}
},
menubar: 'YOUR_CUSTOM_DROP_DOWN_MENU_NAME'
});
});