$conf, $runtime; function_exists('chdir') AND chdir(APP_PATH); $r = 'mysql' == $conf['cache']['type'] ? website_set('runtime', $runtime) : cache_set('runtime', $runtime); } function runtime_truncate() { global $conf; 'mysql' == $conf['cache']['type'] ? website_set('runtime', '') : cache_delete('runtime'); } register_shutdown_function('runtime_save'); ?>How to ensure the visual editor doesn't ruin my iframe?|Programmer puzzle solving
最新消息:Welcome to the puzzle paradise for programmers! Here, a well-designed puzzle awaits you. From code logic puzzles to algorithmic challenges, each level is closely centered on the programmer's expertise and skills. Whether you're a novice programmer or an experienced tech guru, you'll find your own challenges on this site. In the process of solving puzzles, you can not only exercise your thinking skills, but also deepen your understanding and application of programming knowledge. Come to start this puzzle journey full of wisdom and challenges, with many programmers to compete with each other and show your programming wisdom! Translated with DeepL.com (free version)

How to ensure the visual editor doesn't ruin my iframe?

matteradmin9PV0评论

I have this iframe and JavaScript embedded in a post:

<iframe onload="fa_iframeresize.do(this);" src=".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/iframeResizeMe.min.js.gz"></script>

But whenever I go to the visual editor the HTML gets changed tiny bit in such a way that example's code can't handle it anymore:

<iframe style="padding: 0px; margin: 0px; border-width: 0px;" src=".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/iframeResizeMe.min.js.gz"></script>

Is there a way to keep the visual editor from changing a chunk HTML?

I tried the iframe extension but that didn't really handle it properly. I'd also like to avoid creating my own plugin for this.

Ideally I'd like e.g. <!-- NOREFORMAT --><iframe></iframe><script></script><!-- /NOREFORMAT -->.

I have this iframe and JavaScript embedded in a post:

<iframe onload="fa_iframeresize.do(this);" src="https://example/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/iframeResizeMe.min.js.gz"></script>

But whenever I go to the visual editor the HTML gets changed tiny bit in such a way that example's code can't handle it anymore:

<iframe style="padding: 0px; margin: 0px; border-width: 0px;" src="https://example/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/iframeResizeMe.min.js.gz"></script>

Is there a way to keep the visual editor from changing a chunk HTML?

I tried the iframe extension but that didn't really handle it properly. I'd also like to avoid creating my own plugin for this.

Ideally I'd like e.g. <!-- NOREFORMAT --><iframe></iframe><script></script><!-- /NOREFORMAT -->.

Share Improve this question edited Dec 12, 2018 at 12:53 bueltge 17.1k7 gold badges62 silver badges97 bronze badges asked Sep 18, 2018 at 13:12 thethe 1,5682 gold badges13 silver badges32 bronze badges 3
  • 2 Note that the only reason you're able to insert a raw iframe at all is because you're an administrator with the dangerous unfiltered_html capability. Use an iframe shortcode instead, and then enqueue a script that hooks on to the onLoad of all iframes instead of adding dangerous inline JS script attributes – Tom J Nowell Commented Sep 18, 2018 at 13:15
  • It is possible to allow iframe tag for the tinyMCE editor, see wordpress.stackexchange/a/3067/170 However I think you should create a plugin that add a shortcode to add this inside the content. SO you get a more valid content, easier to maintain if you will change this code or remove them from the content in the future. – bueltge Commented Dec 12, 2018 at 12:55
  • visit link see..wordpress.stackexchange/questions/243780/… – Ashvin Monpara Commented Dec 14, 2018 at 4:37
Add a comment  | 

1 Answer 1

Reset to default 1 +50
    add_shortcode('custom_iframe_shortcode', 'build_iframe');
function build_iframe($atts) {
    $defaults = array(
        'source' => 'https://example/calc.php?tp=dif&cl=beleggen&h=1&wf=19370&country=NL',
        'script_source' => '//example/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();
}

then call this like [build_iframe] or [build_iframe source="https://blah" script_source="https://blah/blah.js']

Post a comment

comment list (0)

  1. No comments so far