Prevent browser from loading a custom frameset in

2019-08-07 09:30发布

问题:

I have been trying to communicate two iframes from same domain which are loaded in a page from another domain.

The problem is browser creates a custom frameset over the content of iframe. I cant retrieve the iframe names from within the iframe using parent.iframes[x].name because the script addresses frameset as the parent.

Below is my actual html code -

<html>
 <head>
 </head>
 <body>
  <p>iframe1</p>
  <script type="text/javascript">
  var frames = parent.frames;
  for(var i=0; i < frames.length; i++)
  {
    if(frames[i].name != "undefined")
      alert(frames[i].name);
  }
  </script>    
 </body>
</html>

Below is what browser generated -

 <!--inside iframe-->
 <html>
  <head></head>
    <frameset border="0" rows="100%,*" cols="100%" frameborder="no">
       <!--actual document goes inside frame tag-->
      <frame name="TopFrame" scrolling="yes" noresize="" src="http://abnormalz.stuffshake.com/fframe.html">
     <frame name="BottomFrame" scrolling="no" noresize="">
     <noframes></noframes>
   </frameset>
</html>

Is there any solution to this problem ?

You can check the test at http://stuffshake.com/parent.html

回答1:

Just use localStorage or sessionStorage. Since both iframes are from the same domain, they share the same localStorage. LocalStorage sends events if a value was modified.

Supported as of IE8.