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

Wildcards in a hosts file

I want to setup my local development machine so that any requests for *.local are redirected to localhost . The idea is that as I develop multiple sites, I can just add vhosts to Apache called site1.local , site2.local etc, and have them all resolve to localhost , while Apache serves a different site accordingly.