js知识点3

人丑就该多看书

文章来自其他博文。

*.location.href 用法:

javascript>

function rs(){

parent.left.location.href="top.htm"

parent.bot.location.href="top.htm"

}

以下是一个随意文件名的htm文件:

你自己试试,我想你要的可能就是这样的效果!

--------------------------------------------------------------------------------

我引用楼上老兄的方法回复,帮忙解释一下吧。

以下是top.htm 代码

function rs(){

parent.left.location.href="top.htm" //partent指的是父页,也就是最外面的框架页,left只得是left.htm,location是left页的一向对象,而href是location对象的一个属性,就是该属性确定了left的url地址。所以这里就把你需要的地址给了这个parent.left。

parent.bot.location.href="top.htm" //此句意思同上面的大致一样。

} //函数结束,实现了同时对两个url的更新!

以下是一个随意文件名的htm文件:

> //给这个left.htm定义了一个名字叫left

//给这个top.htm定义了一个名字叫top

//给这个bot.htm定义了一个名字叫bot

window 对象的 location 属性包含了当前页面的地址 (URL) 信息,你可以直接改变此属性值,将其设置成新的地址 (URL):

window.location = "http://www.yahoo.com/";

或者

location = "http://www.yahoo.com/";

你还可以通过下边的两种方法中的任何一种来使浏览器从服务器上下载 (Load) 页面:

reload() - 促使浏览器重新下载当前的页面,也就是“刷新”当前页面了。

replace(URL) - 促使浏览器根据 URL 参数中给出的地址 (URL) 下载页面,同时在当前浏览器存储的历史记录 (即所浏览过的页面的列表) 中使用新的地址(即此方法中的 URL 参数) 覆盖当前的页面。

使用 replace() 方法意味着用户将不能通过按 “返回” 按钮回到前边浏览过的那个页面,但这并不是说用户完全不能回到原来的所有页面,他们只不过是无法回到被 replace() 方法替换的那一个页面 (注意:只是被替换的那一个页面)。

framedemo.html,top.html,button.html为例来具体说明如何做

其中framedemo.html由上下两个页面组成,代码如下:

现在假设top.html即上面的页面有一个button来实现对下面页面的刷新,可以用以下七种语句,哪个好用自己看着办了。

语句1. window.parent.frames[1].location.reload();

语句2. window.parent.frames.bottom.location.reload();

语句3. window.parent.frames["bottom"].location.reload();

语句4. window.parent.frames.item(1).location.reload();

语句5. window.parent.frames.item('bottom').location.reload();

语句6. window.parent.bottom.location.reload();

语句7. window.parent['bottom'].location.reload();

解释一下:

1.window指代的是当前页面,例如对于此例它指的是top.html页面。

2.parent指的是当前页面的父页面,也就是包含它的框架页面。例如对于此例它指的是framedemo.html。

3.frames是window对象,是一个数组。代表着该框架内所有子页面。

4.item是方法。返回数组里面的元素。

看了部分文章个人总结:

top.location是在顶层frame中打开新页

window.location是在当前frame中打开新页

parent.location 在当前窗口的父窗口打开Url地址


Javascript中的location.href有很多种用法,主要如下:

self.location.href="/url" 当前页面打开URL页面

ocation.href="/url" 当前页面打开URL页面

windows.location.href="/url" 当前页面打开URL页面,前面三个用法相同。

this.location.href="/url" 当前页面打开URL页面

parent.location.href="/url" 在父页面打开新页面

top.location.href="/url" 在顶层页面打开新页面

如果页面中自定义了frame,那么可将parent self top换为自定义frame的名称,效果是在frame窗口打开url地址

此外,window.location.href=window.location.href;和window.location.Reload()和都是刷新当前页面。区别在于是否有提交数据。当有提交数据时,window.location.Reload()会提示是否提交,window.location.href=window.location.href;则是向指定的url提交数据。

"window.location.href"、"location.href"是本页面跳转

"parent.location.href"是上一层页面跳转

"top.location.href"是最外层的页面跳转

举例说明:

如果A,B,C,D都是jsp,D是C的iframe,C是B的iframe,B是A的iframe,如果D中js这样写

"window.location.href"、"location.href":D页面跳转

"parent.location.href":C页面跳转

"top.location.href":A页面跳转

如果D页面中有form的话,

: form提交后D页面跳转

: form提交后弹出新页面

: form提交后C页面跳转

: form提交后A页面跳转

关于页面刷新,D 页面中这样写:

"parent.location.reload();": C页面刷新 (当然,也可以使用子窗口的 opener 对象来获得父窗口的对象:window.opener.document.location.reload(); )

"top.location.reload();": A页面刷新


javascript中的location.href有很多种用法,主要如下。

self.location.href="/url" 当前页面打开URL页面

location.href="/url" 当前页面打开URL页面

windows.location.href="/url" 当前页面打开URL页面,前面三个用法相同。

this.location.href="/url" 当前页面打开URL页面

parent.location.href="/url" 在父页面打开新页面

top.location.href="/url" 在顶层页面打开新页面

如果页面中自定义了frame,那么可将parent self top换为自定义frame的名称,效果是在frame窗口打开url地址

此外,window.location.href=window.location.href;和window.location.Reload()和都是刷新当前页面。区别在于是否有提交数据。当有提交数据时,window.location.Reload()会提示是否提交,window.location.href=window.location.href;则是向指定的url提交数据

在写ASP.Net程序的时候,我们经常遇到跳转页面的问题,我们经常使用Response.Redirect 做ASP.NET框架页跳转,如果客户要在跳转的时候使用提示,这个就不灵光了,如:

复制代码代码如下:

Response.Write("< script>alert('恭喜您,注册成功!');< /script>");

Response.Redirect("main.html");

这时候我们的提示内容没有出来就跳转了,和Response.Redirect("main.html");没有任何区别。

这时我们采用下面代码试验一下:

ASP.NET框架页跳转的另一实现

复制代码代码如下:

Response.Write("< script language=javascript>alert('恭喜您,注册成功!')< /script>");

Response.Write("< script language=javascript>window.location.href='main.html'< /script>");

这个即实现了我们的要求,在提示后,跳转页面。

最重要的是window.location.href 语句可以实现一个框架的页面在执行服务器端代码后刷新另一个框架的页面(Response.Redirect无法达到,至少我没有发现):

如:index.htm页面中有二个框架,分别为 frameLeft和frameRight,在frameRight页面中执行服务器端代码后刷新frameLeft中的页面。

先前最常见的是注册之后,自动刷新登陆框,让登陆框换成已登陆页面,只要在注册成功的代码之后加上一段,即可以实现刷新另个框架的页面。代码如下:

复制代码代码如下:

Response.Write("< script language=javascript>alert('恭喜您,注册成功!')< /script>");

Response.Write("< script language=javascript>window.parent.frameLeft.location.href='main.html'< /script>");

这样就搞定了ASP.NET框架页跳转中断的问题。其实asp、php中一般都使用这种方式。

"window.location.href"、"location.href"是本页面跳转

"parent.location.href"是上一层页面跳转

"top.location.href"是最外层的页面跳转

举例说明:

如果A,B,C,D都是jsp,D是C的iframe,C是B的iframe,B是A的iframe,如果D中js这样写

"window.location.href"、"location.href":D页面跳转

"parent.location.href":C页面跳转

"top.location.href":A页面跳转

如果D页面中有form的话,

: form提交后D页面跳转

: form提交后弹出新页面

: form提交后C页面跳转

: form提交后A页面跳转

关于页面刷新,D 页面中这样写:

"parent.location.reload();": C页面刷新 (当然,也可以使用子窗口的 opener 对象来获得父窗口的对象:window.opener.document.location.reload(); )

"top.location.reload();": A页面刷新



js知识点3_第1张图片




js知识点3_第2张图片




js知识点3_第3张图片

你可能感兴趣的:(js知识点3)