Search code examples
javascripthtmlframeframeset

Redirect out of frame page to specific frame in index.htm


I am using frames on index.html file. On every page of the frame I have a code which checks if page is in frame, and if not, then redirect to index.html.

Now. I want to not only check if page is in frame and redirect to index.html, but also I want to open the page in one of the frames on index.html.

I have embedded the JS file with this code as of right now:

if (top.location == self.location)
{
    top.location = 'index.html'
} 

Is there any scripts you might know of?


Solution

  • You need to make the code in the subpages append their name to the 'index.html', e.g.

    if (top.location == self.location) {
        top.location = 'index.html?' + location.href;
    }
    

    ...and put another Javascript on the index.html page which checks for the part after the question mark, e.g.:

    <script type="text/javascript">
    window.onload = function() {
      //check if a query string is given
      if (location.search && location.search.length > 1
           && location.search.charAt(0) == "?") {
    
          //load the URL to the frame
          window.frames["myframe"].location.href = location.search.substring(1);
      }
    }
    </script>
    

    By the way, you need to give your target frame a name like this:

    <frameset ...
        <frame name="myframe" ...