搜尋
首頁web前端js教程JavaScript框架(iframe)操作總結_javascript技巧

框架程式設計概述

一個 HTML頁面可以有一個或多個子框架,這些子框架以

框架間的互引

一個頁面中的所有框架以集合的形式作為window物件的屬性提供,例如:window.frames就表示該頁面內所有框架的集合,這和表單物件、連結物件、圖片物件等是類似的,不同的是,這些集合是document的屬性。因此,要引用一個子框架,可以使用以下語法:

複製程式碼 程式碼如下:
window. frames["frameName"];
window.frames.frameName
window.frames[index]

其中,window字樣也可以用self代替或省略,假設frameName為頁面中第一個框架,則以下的寫法是等價的:
複製代碼 代碼如下:
self.fram
代碼如下:

self.framf. "frameName"]
self.frames[0]
frames[0]frameName

每個框架都對應一個HTML頁面,所以這個框架也是一個獨立的瀏覽器窗口,它具有視窗的所有性質,所謂對框架的引用也就是對window物件的引用。有了這個window對象,就可以很方便地對其中的頁面進行操作,例如使用window.document對象向頁面寫入資料、使用 window.location屬性來改變框架內的頁面等。

以下分別介紹不同層次框架間的互相引用:

1.父框架到子框架的引用

知道了上述原理,從父框架引用子框架變的非常容易,即:複製程式碼
程式碼如下:

window.frames["frameName"];
這樣就引用了頁面內名為frameName的子框架。如果要引用子框架內的子框架,根據所引用的框架實際上是window物件的性質,可以這樣實作:複製程式碼

複製程式碼

代碼如下:

window.frames["frameName"].frames["frameName2"];

這樣就引用到了二級子框架,以此類推,可以實現多層框架的引用。

2.子框架到父框架的引用


每個window物件都有parent屬性,表示它的父框架。如果該框架已經是頂層框架,則window.parent也表示該框架本身。

3.兄弟框架間的引用 如果兩個框架同為一個框架的子框架,它們稱為兄弟框架,可以透過父框架來實現互相引用,例如一個頁麵包括2個子框架:


複製程式碼

程式碼如下:
            在frame1中可以使用下列語句來引用frame2:

複製程式碼

程式碼如下:


self.parent.frames["frame2"];

框架的層次是針對頂層框架而言的。當層次不同時,只要知道自己所在的層次以及另一個框架所在的層次和名字,利用框架引用的window物件性質,可以很容易地實現互相訪問,例如:
複製程式碼 程式碼如下:self.parent.frames["childName"].frames["targetFrameName"];

5.頂層框架的引用

和parent屬性類似,window物件還有一個top屬性。它表示對頂層框架的引用,可以用來判斷一個框架本身是否為頂層框架,例如:

複製程式碼 程式碼如下:
//判斷本框架是否為頂層框架
if(self==top){
    //dosomething
}

改變框架的載入頁數

對框架的引用就是對window物件的引用,利用window物件的location屬性,可以改變框架的導航,例如:

複製程式碼 程式碼如下:
window.frames[0].location="1.html";

這就將頁面中第一個框架的頁面重新導向到1 .html,利用這個性質,甚至可以使用一條連結來更新多個框架。
複製程式碼 程式碼如下:




   
link


引用其他框架內的JavaScript變數和函數

在介紹引用其他框架內JavaScript變數和函數的技術之前,先來看看以下程式碼: 複製程式碼
程式碼如下:

function hello(){
    alert("hello,ajation hello(){
    alert("hello,ajax!"); }
window.hello();

如果運行了這段程式碼,會彈出「hello,ajax!」的窗口,這正是執行hello()函數的結果。那為什麼hello()變成了window物件的方法呢?因為在一個頁面內定義的所有全域變數和全域函數都是作為window物件的成員。例如:
var a=1;
alert(window.a);[/code]
就會跳出對話框顯示為1。同樣的原理,在不同框架之間共享變數和函數,就是要透過window物件來呼叫。
例如:一個商品瀏覽頁面由兩個子框架組成,左側表示商品分類的連結;當使用者點擊分類連結時,右側顯示對應的商品清單;使用者可以點擊商品旁的【購買】連結將商品加入購物車。
在這個例子中,可以利用左側導航頁面來儲存使用者想要購買的商品,因為當使用者點擊導覽連結時,變化的是另外一個頁面,即商品展示頁面,而導覽頁面本身是不變的,因此其中的JavaScript變數不會遺失,可以用來儲存全域資料。其實作原理如下:
假設左側頁為link.html,右側頁為show.html,頁面結構如下:複製程式碼
程式碼如下:





New Document


   
   



在show.html中展示的商品旁邊可以加入這樣一條語句:
加入購物車

代碼如下:


代碼如下:var arrOrders=new Array();function addToOrders(id){    arrOrders.push(id);}
這樣,在結帳頁面或是購物車瀏覽頁面就可以用arrOrders來取得所有準備要購買的商品。
框架可以使一個頁面劃分為功能獨立的多個模組,每個模組之間彼此獨立,但又可以透過window物件的引用來建立聯繫,是Web開發中的重要機制。在 Ajax開發中,還可以利用隱藏框架實現各種技巧,​​在後面介紹Ajax實例編程時可以發現,無刷新上傳文件以及解決Ajax的前進後退問題都會用到這種技術。

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
es6数组怎么去掉重复并且重新排序es6数组怎么去掉重复并且重新排序May 05, 2022 pm 07:08 PM

去掉重复并排序的方法:1、使用“Array.from(new Set(arr))”或者“[…new Set(arr)]”语句,去掉数组中的重复元素,返回去重后的新数组;2、利用sort()对去重数组进行排序,语法“去重数组.sort()”。

JavaScript的Symbol类型、隐藏属性及全局注册表详解JavaScript的Symbol类型、隐藏属性及全局注册表详解Jun 02, 2022 am 11:50 AM

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于Symbol类型、隐藏属性及全局注册表的相关问题,包括了Symbol类型的描述、Symbol不会隐式转字符串等问题,下面一起来看一下,希望对大家有帮助。

原来利用纯CSS也能实现文字轮播与图片轮播!原来利用纯CSS也能实现文字轮播与图片轮播!Jun 10, 2022 pm 01:00 PM

怎么制作文字轮播与图片轮播?大家第一想到的是不是利用js,其实利用纯CSS也能实现文字轮播与图片轮播,下面来看看实现方法,希望对大家有所帮助!

JavaScript对象的构造函数和new操作符(实例详解)JavaScript对象的构造函数和new操作符(实例详解)May 10, 2022 pm 06:16 PM

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于对象的构造函数和new操作符,构造函数是所有对象的成员方法中,最早被调用的那个,下面一起来看一下吧,希望对大家有帮助。

JavaScript面向对象详细解析之属性描述符JavaScript面向对象详细解析之属性描述符May 27, 2022 pm 05:29 PM

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于面向对象的相关问题,包括了属性描述符、数据描述符、存取描述符等等内容,下面一起来看一下,希望对大家有帮助。

javascript怎么移除元素点击事件javascript怎么移除元素点击事件Apr 11, 2022 pm 04:51 PM

方法:1、利用“点击元素对象.unbind("click");”方法,该方法可以移除被选元素的事件处理程序;2、利用“点击元素对象.off("click");”方法,该方法可以移除通过on()方法添加的事件处理程序。

foreach是es6里的吗foreach是es6里的吗May 05, 2022 pm 05:59 PM

foreach不是es6的方法。foreach是es3中一个遍历数组的方法,可以调用数组的每个元素,并将元素传给回调函数进行处理,语法“array.forEach(function(当前元素,索引,数组){...})”;该方法不处理空数组。

整理总结JavaScript常见的BOM操作整理总结JavaScript常见的BOM操作Jun 01, 2022 am 11:43 AM

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于BOM操作的相关问题,包括了window对象的常见事件、JavaScript执行机制等等相关内容,下面一起来看一下,希望对大家有帮助。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中