Cum să asigur că editorul vizual nu îmi strică iframe-ul?

18 sept. 2018, 16:12:05
Vizualizări: 303
Voturi: 2

Am acest iframe și JavaScript încorporat într-un articol:

<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>

Dar de fiecare dată când accesez editorul vizual, HTML-ul este modificat ușor în așa fel încât codul de la example.com nu mai poate să-l proceseze:

<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>

Există o metodă de a preveni editorul vizual să modifice un fragment de HTML?

Am încercat extensia pentru iframe dar nu a funcționat corect. Aș dori de asemenea să evit crearea unui plugin propriu pentru asta.

În mod ideal, aș dori ceva de genul <!-- NOREFORMAT --><iframe></iframe><script></script><!-- /NOREFORMAT -->.

3
Comentarii

Rețineți că singurul motiv pentru care puteți insera un iframe brut este pentru că sunteți administrator cu capacitatea periculoasă unfiltered_html. Utilizați un shortcode pentru iframe, apoi încărcați un script care se atașează la onLoad al tuturor iframe-urilor în loc să adăugați atribute JS inline periculoase.

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

Este posibil să permiteți tag-ul iframe pentru editorul tinyMCE, consultați https://wordpress.stackexchange.com/a/3067/170 Totuși, cred că ar trebui să creați un plugin care adaugă un shortcode pentru a insera acest lucru în conținut. Astfel obțineți un conținut mai valid, mai ușor de întreținut dacă veți modifica acest cod sau dacă îl veți elimina din conținut în viitor.

bueltge bueltge
12 dec. 2018 14:55:33

vizitați linkul vezi..https://wordpress.stackexchange.com/questions/243780/tinymce-removes-iframe-attributes-width-and-height

Ashvin Monpara Ashvin Monpara
14 dec. 2018 06:37:46
Toate răspunsurile la întrebare 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();
}

apoi apelați acest shortcode astfel [build_iframe] sau [build_iframe source="https://blah" script_source="https://blah/blah.js']

17 dec. 2018 18:58:15