Skip to main content

As a page, can I tell if I"ve been loaded into an iframe using javascript?



I'm loading a page into an iframe. Both pages are on the same domain. I want the page being loaded to do specific js functionality only if it has been loaded into an iframe. Is this possible?





Bonus: can it be done in jQuery?





Thanks


Comments

  1. or just:

    var isEmbed = window != window.parent;

    ReplyDelete
  2. You could use iframe's onload event:

    <html>
    <head>
    <script type="text/javascript">
    function load()
    {
    alert("Iframe is loaded");
    }
    </script>
    </head>

    <iframe onload="load()" src="/page.html">
    </iframe>
    </html>

    ReplyDelete
  3. You can check if you are in an iframe using this snippet:

    var isInIframe = (window.location != window.parent.location) ? true : false;


    based on that you can continue with your javascript code.

    ReplyDelete
  4. Probably the simplest method:

    if ( self !== top ) {
    // you're in an iframe
    }


    So, you check if the current window is the topmost window...

    ReplyDelete

Post a Comment

Popular posts from this blog

Why is this Javascript much *slower* than its jQuery equivalent?

I have a HTML list of about 500 items and a "filter" box above it. I started by using jQuery to filter the list when I typed a letter (timing code added later): $('#filter').keyup( function() { var jqStart = (new Date).getTime(); var search = $(this).val().toLowerCase(); var $list = $('ul.ablist > li'); $list.each( function() { if ( $(this).text().toLowerCase().indexOf(search) === -1 ) $(this).hide(); else $(this).show(); } ); console.log('Time: ' + ((new Date).getTime() - jqStart)); } ); However, there was a couple of seconds delay after typing each letter (particularly the first letter). So I thought it may be slightly quicker if I used plain Javascript (I read recently that jQuery's each function is particularly slow). Here's my JS equivalent: document.getElementById('filter').addEventListener( 'keyup', function () { var jsStart = (new Date).getTime()...

Is it possible to have IF statement in an Echo statement in PHP

Thanks in advance. I did look at the other questions/answers that were similar and didn't find exactly what I was looking for. I'm trying to do this, am I on the right path? echo " <div id='tabs-".$match."'> <textarea id='".$match."' name='".$match."'>". if ($COLUMN_NAME === $match) { echo $FIELD_WITH_COLUMN_NAME; } else { } ."</textarea> <script type='text/javascript'> CKEDITOR.replace( '".$match."' ); </script> </div>"; I am getting the following error message in the browser: Parse error: syntax error, unexpected T_IF Please let me know if this is the right way to go about nesting an IF statement inside an echo. Thank you.