對於 javascript 操作 iframe 父級頁面元素的方法,大家應該都非常清楚了,下面結合當前非常流行的 jquery 分享一下如何使用 jquery 查找和操作 iframe 父級頁面元素的實現代碼。實例如下:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>父級頁面</title> </head> <body> <div id="example">這是父級頁面!</div> <div> <iframe src="iframe.html"></iframe> </div> </body> </html>
下面是 iframe.html 頁面代碼:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>iframe 子級頁面</title> <script language="javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> <script language="javascript"> $("body",parent.document).append('這是子級頁面添加的內容!'); $("body",parent.document).find('#example').html('子級頁面將替換父級頁面的內容!'); </script> </head> <body> iframe 子級頁面內容 </body> </html>
另外由於 iframe 不能跨域,所以直接打開以上文件的話,有的瀏覽器可能不起作用,這時可以將以上兩文件上傳到本地或遠程服務器上看效果。
另外對於javascript操作iframe對象有幾點需要說明的是:
iframe里的js要操作父級窗口的dom,必須搞懂幾個對象:
parent是父窗口(如果窗口是頂級窗口,那么parent==self==top),
top是最頂級父窗口(有的窗口中套了好幾層frameset或者iframe),
self是當前窗口(等價window),
opener是用open方法打開當前窗口的那個窗口;
這樣iframe里的js要操作父級窗口的dom可以通過parent,top這些對象來獲取父窗口的window對象,例如:
parent.document.getElementById("dom ID");
parent,top還能調用父級窗口的的js方法,比如,getIFrameDOM(iID)是父級窗口的一個方法,那么iframe里可以使用parent.getIFrameDOM("wIframeA")來調用父級窗口的getIFrameDOM(iID)方法。