Я сделал небольшую скрипку об этой проблеме: http://fiddle.tinymce.com/O0gaab
Я добавляю пользовательский элемент "custom-block" и пользовательский плагин для вставки этого элемента.
tinymce.PluginManager.add('custom', function(editor, url) {
editor.addButton('custom', {
text: 'CUSTOM',
onclick: function() {
// Open window
editor.windowManager.open({
title: 'Custom plugin',
body: [
{type: 'textbox', name: 'src', label: 'SRC'},
{type: 'label', name: 'title', text: 'Insert content bellow:'},
{type: 'textbox', name: 'content', multiline: true, style: 'width:500px;height:100px;'}
],
onsubmit: function(e) {
console.log(e.data);
editor.insertContent('<custom-block src="' + e.data.src + '">' + e.data.content + '</custom-block>');
}
});
}
});
});
tinymce.init({
selector: "textarea",
plugins: [
"advlist autolink lists link image charmap print preview anchor",
"searchreplace visualblocks code fullscreen",
"insertdatetime media table contextmenu paste custom"
],
toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image | custom",
//valid_elements: "+*[*]", //when using this option trying to allow everything get an error "Cannot read property 'src' of undefined"
extend_valid_elements: "custom-block[src]",
custom_elements: "custom-block"
});
элемент вставляется правильно, но без атрибута src
.
Из документации я полагал, что extend_valid_elements: "custom-block[src]"
разрешит атрибут src
для custom-block
, но он удаляется каждый раз.
Я также пытался установить valid_elements
на все (+*[*]
) на всякий случай, но затем становится хуже, потому что при вставке я получаю ошибку: "Невозможно прочитать свойство 'src' из undefined" .
Я делаю какую-либо ошибку или в чем проблема?