2011-05-23 18 views
23

Estoy intentando permitir que algunas etiquetas personalizadas se ingresen en TinyMCE. La etiqueta esPermitir etiquetas personalizadas en TinyMCE para su integración con indexhibit

<plug:plugin_name /> 

Sin embargo, esto se convierte en

<plug:plugin_name></plug:plugin_name> 

estoy a punto de escribir una expresión regular para hacer frente a esto como tengo que hacer el trabajo, no me gustaría mucho que, pero solucionará mi problema.

He probado muchas de las opciones de inicialización:

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)$/, 

Cualquier otra duda ya que esto funcione con una versión reciente de TinyMCE?

Además, otro problema será que el editor quitará la etiqueta, ¡después de haberla corregido con la expresión regular!

+0

3.4.2 Otro problema es que cuando el editor carga por primera vez, también eliminará la etiqueta . –

+0

hmm, hasta donde sé, la verificación de los elementos válidos (el algoritmo) ha cambiado de la versión 3.9.x a la 3.4.x. ¿Por qué usas 3.4.x? esta versión todavía es beta. Cambiaré a 3.4.x si es lo suficientemente estable. – Thariama

+0

¿Qué tipo de información es la que necesita guardar? ¿Se puede hacer sin marcado o tal vez con otro elemento? – Betamos

Respuesta

0

En lugar de:

closed : /^(br|hr|input|meta|img|link|param|area|plug:plugin_name)$/, 

hace este trabajo?

closed : /^(br|hr|input|meta|img|link|param|area|plug)$/, 

Tenga en cuenta el último elemento "plug" sin el: modificador.

0

¿Has probado esta opción?

valid_elements: "a,br,span,plug:plugin_name,another:tag" 
0

Puede utilizar el método de codificación como crudo para cualquier tipo de dato.

tinyMCE.init({ 
    encoding : "raw" 
}) 
0
  1. En primer lugar permite crear un plugin personalizado para su tinymce 4 editor.and a continuación, añadir un elemento de menú para este plugin:

    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... 
        } }); 
    

    haya terminado de crear su complemento personalizado y elementos de menú personalizados , realmente lo agreguemos al editor de Tinymce 4. Esto se hará en el método 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' 
        }); 
    
        }); 
    
1

sólo tiene que añadir a la lista de elementos que terminaron cortos:

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' 

Aquí hay una fiddle demostrar.

Cuestiones relacionadas