情景:

主页面main.html中有两个子frame:left.html和right.html。三个html文件同处于同一个文件夹下。现在需要通过right.html中的一个按钮事件来获取right.html中的<p>标签中的内容并alert。

main.html

  1. <html> 
  2.      
  3.     <frameset cols="25%,75%"> 
  4.     <frame id="left" src="left.html"></frame> 
  5.     <frame id="right" src="right.html"></frame> 
  6.     </frameset> 
  7.      
  8. </html> 

left.html

  1. <body> 
  2.     <p id="p2">data</p> 
  3.     <input type="hidden" id="h1" value="testdata1"/> 
  4.     <input type="text" id="h2" value="testdata2"    /> 
  5. </body> 

right.html

  1. <html> 
  2.     <head> 
  3.             <script type="text/javascript" src="../jquery-1.7.1.min.js"></script> 
  4.             <script type="text/javascript"> 
  5.                 $(document).ready(function(){ 
  6.                     $("#btn1").click(function(){ 
  7.                          
  8.                         alert(parent.frames["left"].p2.innerText); 
  9.                     }); 
  10.                 });  
  11.             </script>    
  12.          
  13.     </head> 
  14.      
  15.      
  16.     <body> 
  17.         <input type="button" id="btn1" value="btn"/> 
  18.     </body> 
  19.      
  20. </html> 

 

 

问题:

脱机时:

IE9正常运行,chrome17报错:Unsafe JavaScript attempt to access frame....

解决:

 

上线运行:

IE9和chrome17均正常运行。

 

总结:

 

限制跨域访问是出于安全考虑,但是现在的场景是没跨域的,却报跨域错误。可能是chrome的一个bug。