Friday, February 17, 2012

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

4 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