iframe - ckeditor no lee el código de inserción de los medios
embed media (2)
Yo uso el complemento de inserción de medios para ckeditor. Funciona bien, el código se guarda correctamente en la base de datos y en youtube, soundcloud etd. Los jugadores se muestran bien en la página. Pero cuando el usuario va a su administración, donde puede editar la información, el texto que está dentro y con las etiquetas no se muestra, por lo que cuando el usuario hace clic en el botón Guardar, todos los iframes guardados previamente se "borrarán" y solo el resto del texto formateado se guardará. ¿Hay alguna forma de mostrar el código iframe en el ckeditor?
Supongo que utiliza CKEditor 4.1.x que viene con el Filtro de contenido avanzado (ACF). Lo más probable es que el punto es que utiliza diferentes editores para la edición de frontend / backend.
Cada complemento extiende la propiedad allowedContent con sus propias reglas para etiquetas, atributos y clases. Al usar esas reglas, el editor elimina automáticamente los contenidos no deseados, así que, por ejemplo, si su editor de portada permite <iframe>
porque tiene cargado el complemento de mediamiembro, entonces su editor de backend sin este complemento eliminará su <iframe>
del contenido.
Además, ACF también observa la configuración de la barra de herramientas, por lo que incluso si incluye el complemento pero no quiere que aparezca el botón en la barra de herramientas, cualquier contenido que proporcione el botón (es decir, <iframe>
) también se rechazará en la salida del editor.
Puede comprobar fácilmente si su editor acepta <iframes>
. Básicamente llame a lo siguiente y vea la salida:
CKEDITOR.instances.yourInstance.filter.check( ''iframe'' );
>>> true // it''s allowed
Si es false
, entonces hay varias soluciones para su problema:
- Habilite el complemento de mediambado en su editor de fondo (con el botón en la barra de herramientas).
- Extienda
config.extraAllowedContent
paraconfig.extraAllowedContent
a tenerlo.
Si bien la primera solución es sencilla , la segunda puede ser difícil para usted. allowedContent
regla allowedContent
para el complemento mediaembed es la siguiente (vea el código del complemento ):
allowedContent: ''iframe[*]'' // stands for: iframe element with any attribute
Si agrega lo siguiente a la configuración de su editor de back-end, tendrá iframes de nuevo en su contenido sin cargar el complemento de mediaembed:
config.extraAllowedContent = ''iframe[*]''
Si esta solución no funciona para usted, proporcione configuraciones de editor y la versión CKEditor para que la gente pueda ayudarlo.
CKEDITOR.config.allowedContent = true;
trabaja para mi.