JavaScript Framework (IFRAME) operation Summary _javascript tips

Source: Internet
Author: User

Framework Programming Overview

An HTML page can have one or more child frames, which are marked with <iframe> to display a separate HTML page. Framework programming here includes the self-control of the framework and the mutual access between frameworks, such as referencing JavaScript variables from one frame to another, calling functions within other frameworks, controlling the behavior of forms in another frame, and so on.

Cross-references between frames

All frames in a page are provided as properties of the Window object in the form of a collection, for example: Window.frames represents a collection of all the frames within the page, similar to the form objects, linked objects, picture objects, and so on, and these collections are the properties of the document. Therefore, to refer to a child frame, you can use the following syntax:

Copy Code code as follows:
window.frames["FrameName"];
Window.frames.frameName
Window.frames[index]

Where the window typeface can also be replaced or omitted with self, assuming that FrameName is the first frame in the page, the following is equivalent:
Copy Code code as follows:
self.frames["FrameName"]
Self.frames[0]
Frames[0]
FrameName

Each frame corresponds to an HTML page, so the frame is also a standalone browser window that has all the properties of a window, a reference to a frame that is a reference to a Window object. With this Window object, you can easily manipulate the pages in it, such as using the Window.document object to write data to the page, using the Window.location property to change the page inside the frame, and so on.

The following are references to each other between different levels of frameworks:

1. Reference to the parent frame to the child frame

Knowing the above principle, referencing the child frame from the parent frame becomes very easy, namely:

Copy Code code as follows:
window.frames["FrameName"];

This refers to a child frame named FrameName within the page. If you want to refer to a child frame within a child frame, you can do so by referring to a frame that is actually the nature of the Window object:
Copy Code code as follows:
window.frames["FrameName"].frames["frameName2"];

This refers to a two-level child framework, and so on, you can implement a reference to a multi-tier framework.

2. Child frame to Parent frame reference

Each Window object has a parent attribute, which represents its parental frame. If the frame is already a top-level frame, window.parent also represents the framework itself.

3. The reference between the brothers frame

If two frames are a child of a framework, they are called sibling frameworks, and can be referenced through the parent framework, such as a page that includes 2 child frames:

Copy Code code as follows:
<frameset rows= "50%,50%" >
<frame src= "1.html" name= "frame1"/>
<frame src= "2.html" name= "frame2"/>
</frameset>

You can use the following statement to refer to frame2 in frame1:
Copy Code code as follows:
self.parent.frames["Frame2"];

4. Mutual reference between different levels of frames

The hierarchy of the framework is for the top level framework. When levels are different, you can easily access each other by knowing the hierarchy and the hierarchy and name of the other frame, and by using the Window object properties referenced by the framework, for example:

Copy Code code as follows:
self.parent.frames["ChildName"].frames["Targetframename"];

5. References to top-level frames

Like the Parent property, the Window object also has a top property. It represents a reference to the top-level framework, which can be used to determine whether a frame itself is a top-level frame, for example:

Copy Code code as follows:
Determine if this frame is a top-level frame
if (self==top) {
DoSomething
}

Change the load page of a frame

A reference to a frame is a reference to a Window object that, using the Location property of the Window object, can change the navigation of the frame, for example:

Copy Code code as follows:
Window.frames[0].location= "1.html";

This redirects the page of the first frame in the page to 1.html, using this property to even update multiple frames with a single link.
Copy Code code as follows:
<frameset rows= "50%,50%" >
<frame src= "1.html" name= "frame1"/>
<frame src= "2.html" name= "frame2"/>
</frameset><!--somecode-->
<a href= "frame1.location= ' 3.html;frame2.location= ' 4.html '" onclick= "" >link</a>
<!--somecode-->

referencing JavaScript variables and functions within other frames

Before introducing techniques for referencing JavaScript variables and functions within other frameworks, look at the following code:

Copy Code code as follows:
function Hello () {
Alert ("hello,ajax!");
}
Window.hello ();

If this code is run, "hello,ajax!" will pop up. window, which is the result of performing the Hello () function. So why does hello () become a Window object method? Because all global variables and global functions defined within a page are members of the Window object. For example:
var a=1;
alert (WINDOW.A); [/code]
The pop-up dialog box is displayed as 1. The same principle of sharing variables and functions between different frames is to be invoked through the Window object.
For example: A product browsing page consists of two sub frames, and the left-hand side represents a link to the product category; When the user clicks the category link, the appropriate list of items is displayed on the right, and the user can click the "Buy" link next to the item to add the item to the cart.
In this case, you can use the navigation page on the left to store the goods that the user wants to buy, because when the user clicks the navigation link, it changes another page, the product display page, and the navigation page itself is unchanged, so the JavaScript variable is not lost and can be used to store global data. The principle of realization is as follows:
Assuming the left page is link.html, the right page is show.html and the page structure is as follows:
Copy Code code as follows:

<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 transitional//en" >
<title> New Document </title>
<frameset cols= "20%,80%" >
<frame src= "link.html" name= "link"/>
<frame src= "show.html" name= "Show"/>
</frameset>

You can add a statement next to a product displayed in show.html:
<a href= "void (0)" onclick= "Self.parent.link.addToOrders (32068)" > Add Shopping Cart </a>
Link represents the navigation framework, the arrorders array is defined in the Link.html page to store the ID of the product, and the function addtoorders () is used to respond to the Click event of the "buy" link next to the product, and the parameter ID it receives indicates the ID of the product. The example is a product with an ID of 32068:

Copy Code code as follows:
var arrorders=new Array ();
function Addtoorders (ID) {
Arrorders.push (ID);
}

This way, you can use Arrorders to get all the items you want to buy on the checkout page or the Shopping Cart browsing page.
The framework can divide a page into functionally independent modules, each module is independent of each other, but can be linked through the reference of Window objects, is an important mechanism in web development. In AJAX development, you can also use the hidden framework to implement a variety of techniques, as described in the following Ajax instance programming can be found, no refresh upload files and solve the Ajax forward backward problem will use this technology.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.