jquery操作iframe父级页面元素的方法

对于 javascript 操作 iframe 父级页面元素的方法,大家应该都非常清楚了,下面结合当前非常流行的 jquery 分享一下如何使用 jquery 查找和操作 iframe 父级页面元素的实现代码。实例如下:

  1. <html> 
  2. <head> 
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  4. <title>父级页面</title> 
  5. </head> 
  6. <body> 
  7. <div id="example">这是父级页面!</div> 
  8. <div> 
  9. <iframe src="iframe.html"></iframe> 
  10. </div> 
  11. </body> 
  12. </html> 

下面是 iframe.html 页面代码:

  1. <html> 
  2. <head> 
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  4. <title>iframe 子级页面</title> 
  5. <script language="javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
  6. <script language="javascript"> 
  7. $("body",parent.document).append('这是子级页面添加的内容!'); 
  8. $("body",parent.document).find('#example').html('子级页面将替换父级页面的内容!'); 
  9. </script> 
  10. </head> 
  11. <body> 
  12. iframe 子级页面内容 
  13. </body> 
  14. </html> 

另外由于 iframe 不能跨域,所以直接打开以上文件的话,有的浏览器可能不起作用,这时可以将以上两文件上传到本地或远程服务器上看效果。

另外对于javascript操作iframe对象有几点需要说明的是

iframe里的js要操作父级窗口的dom,必须搞懂几个对象:

parent是父窗口(如果窗口是顶级窗口,那么parent==self==top),

top是最顶级父窗口(有的窗口中套了好几层frameset或者iframe),

self是当前窗口(等价window),

opener是用open方法打开当前窗口的那个窗口;

这样iframe里的js要操作父级窗口的dom可以通过parent,top这些对象来获取父窗口的window对象,例如:

  1. parent.document.getElementById("dom ID"); 

parent,top还能调用父级窗口的的js方法,比如,getIFrameDOM(iID)是父级窗口的一个方法,那么iframe里可以使用parent.getIFrameDOM("wIframeA")来调用父级窗口的getIFrameDOM(iID)方法。

转载请注明:代码家园 » jquery操作iframe父级页面元素的方法

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)