常用程式碼:
<iframe src="http://www.baidu.com" marginwidth="0" marginheight="0" border="0" scrolling="no" frameborder="0" width="350" height="270"></iframe> <iframe src="http://www.jb51.net/plugins/like.php?href=YOUR_URL" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"></iframe>
javascript存取frame,iframe框架和href的定向
一.frame
1.父框架到子框架的引用
知道了上述原理,從父框架引用子框架變的非常容易,即:
window.frames["frameName"];
這樣就引用了頁面內名為frameName的子框架。如果要引用子框架內的子框架,根據所引用的框架實際上就是window物件的性質,可以這樣實作:
window.frames["frameName"].frames["frameName2"];
這樣就引用到了二級子框架,以此類推,可以實現多層框架的引用。
2.子框架到父框架的引用
每個window物件都有parent屬性,表示它的父框架。如果該框架已經是頂層框架,則window.parent也表示該框架本身。
3.兄弟框架間的引用
如果兩個框架同為一個框架的子框架,它們稱為兄弟框架,可以透過父框架來實現互相引用,例如一個頁麵包括2個子框架:
<frameset rows=”50%,50%”> <frame src=”1.html” name=”frame1″ /> <frame src=”2.html” name=”frame2″ /> </frameset>
在frame1中可以使用以下語句來引用frame2:
self.parent.frames["frame2"];
4.不同層次框架間的互相引用
框架的層次是針對頂層框架而言的。當層次不同時,只要知道自己所在的層次以及另一個框架所在的層次和名字,利用框架引用的window物件性質,可以很容易地實現互相訪問,例如:
self.parent.frames["childName"].frames["targetFrameName"];
5.頂層框架的引用
和parent屬性類似,window物件還有一個top屬性。它表示對頂層框架的引用,可以用來判斷一個框架本身是否為頂層框架,例如:
即
改變框架的載入頁
對框架的引用就是對window物件的引用,利用window物件的location屬性,可以改變框架的導航,例如:
window.frames[0].location = "1.html";
引用其他框架內的JavaScript變數和函數
在介紹引用其他框架內JavaScript變數和函數的技術之前,先來看看以下程式碼:
<script language=”JavaScript” type=”text/javascript”> <!– function hello(){ alert(“hello,ajax!”); } window.hello(); //–> </script>
二.iframe
嚴格上應該是使用frames數組,和 document.all。
三.href
1.連結的 onclick 事件先執行,其次是 href 屬性下的動作(頁面跳轉,或 javascript 偽連結);
2.假設連結中同時存 在 href 與 onclick,如果想要 讓 href 屬性下的動作不執行,onclick 必須得到一個 false 的回傳值。不信,你可以將 goGoogle 函數中的 return false 註解掉;
3.如果頁面過長有捲軸,且希望透過連結的 onclick 事件執行操作。它的 href 屬性應設為 javascript:void(0);,而不要 是 #,這可以防止不必要的頁面跳動;
4.如果在連結的 href 屬性中呼叫有傳回值的函數,目前頁面的內容將被此函數的回傳值取代;
5.在按住Shift鍵的情況下會有所差別。
6.今天我遇到的問題,在IE6.0裡以href的形式訪問不到parentNode。
7.盡量不要用javascript:協定做為A的href屬性,這樣不僅會導致不必要的觸發window.onbeforeunload事件,在IE裡面更會使gif動畫圖片停止播放。
如:
調整框架的高度