Cómo evitar que el editor visual arruine mi iframe

18 sept 2018, 16:12:05
Vistas: 303
Votos: 2

Tengo este iframe y JavaScript incrustado en una publicación:

<iframe onload="fa_iframeresize.do(this);" src="https://example.com/calc.php?tp=dif&cl=beleggen&h=1&wf=19370&country=NL" scrolling="no" width="100%" style="padding:0px;margin:0px;border-width:0px;" frameborder="0">
</iframe>
<script type="text/javascript" src="//example.com/iframeResizeMe.min.js.gz"></script>

Pero cada vez que voy al editor visual, el HTML se modifica ligeramente de manera que el código de example.com no puede manejarlo:

<iframe style="padding: 0px; margin: 0px; border-width: 0px;" src="https://example.com/calc.php?tp=dif&amp;cl=beleggen&amp;h=1&amp;wf=19370&amp;country=NL" width="100%" frameborder="0" scrolling="no">
</iframe>
<script type="text/javascript" src="//example.com/iframeResizeMe.min.js.gz"></script>

¿Existe alguna manera de evitar que el editor visual cambie un bloque de HTML?

Probé la extensión de iframe pero no lo manejó correctamente. También me gustaría evitar crear mi propio plugin para esto.

Idealmente me gustaría algo como <!-- NOREFORMAT --><iframe></iframe><script></script><!-- /NOREFORMAT -->.

3
Comentarios

Ten en cuenta que la única razón por la que puedes insertar un iframe en bruto es porque eres un administrador con la peligrosa capacidad unfiltered_html. Usa un shortcode de iframe en su lugar, y luego encola un script que se enganche al onLoad de todos los iframes en lugar de añadir peligrosos atributos de script JS en línea.

Tom J Nowell Tom J Nowell
18 sept 2018 16:15:21

Es posible permitir la etiqueta iframe para el editor tinyMCE, consulta https://wordpress.stackexchange.com/a/3067/170 Sin embargo, creo que deberías crear un plugin que añada un shortcode para insertar esto dentro del contenido. Así obtendrás un contenido más válido, más fácil de mantener si necesitas cambiar este código o eliminarlo del contenido en el futuro.

bueltge bueltge
12 dic 2018 14:55:33

visita el enlace para ver... https://wordpress.stackexchange.com/questions/243780/tinymce-removes-iframe-attributes-width-and-height

Ashvin Monpara Ashvin Monpara
14 dic 2018 06:37:46
Todas las respuestas a la pregunta 1
0
    add_shortcode('custom_iframe_shortcode', 'build_iframe');
function build_iframe($atts) {
    $defaults = array(
        'source' => 'https://example.com/calc.php?tp=dif&cl=beleggen&h=1&wf=19370&country=NL',
        'script_source' => '//example.com/iframeResizeMe.min.js.gz'
    );
    $args = shortcode_atts($defaults, $atts);

    ob_start(); ?>
    <iframe onload="fa_iframeresize.do(this);" src="<?php echo $args['source']; ?>" scrolling="no" width="100%" style="padding:0px;margin:0px;border-width:0px;" frameborder="0">
    </iframe>
    <script type="text/javascript" src="<?php echo $args['script_source']; ?>"></script>
    <?php return ob_get_clean();
}

luego llámalo así [build_iframe] o [build_iframe source="https://ejemplo" script_source="https://ejemplo/script.js"]

17 dic 2018 18:58:15