来源url:http://blog.csdn.net/xiaolei1982/archive/2007/07/28/1714201.aspx
location.href的用法
Posted on 2010-09-20 07:44 chinaifne 阅读( 46316) 评论( 1) 编辑 收藏 *.location.href 用法:
top.location.href=”url” 在顶层页面打开url(跳出框架)
self.location.href=”url” 仅在本页面打开url地址
parent.location.href=”url” 在父窗口打开Url地址
this.location.href=”url” 用法和self的用法一致
if (top.location == self.location) 判断当前location 是否为顶层来 禁止frame引用
如果页面当中有自定义的frame的话,也可以将parent self top换为自定义frame的名称
效果就是在自定义frame窗口打开url地址
javascript frame 刷新
引用:
--------------------------------------------------------------------------------
这是一个简单的事例:
以下是top.htm 代码
<script language=javascript>
function rs(){
parent.left.location.href="top.htm"
parent.bot.location.href="top.htm"
}
</script>
<input type=button name=name value="ksdj" οnclick=rs();>
以下是一个随意文件名的htm文件:
<FRAMESET COLS="150,*">
<FRAME SRC="left.htm" name=left>
<FRAMESET ROWS="150,*">
<FRAME SRC="top.htm" name=top>
<FRAME SRC="bot.htm" name=bot>
</FRAMESET>
</FRAMESET>
你自己试试,我想你要的可能就是这样的效果!
--------------------------------------------------------------------------------
我引用楼上老兄的方法回复,帮忙解释一下吧。
以下是top.htm 代码
<script language=javascript>
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的更新!
</script>
<input type=button name=name value="ksdj" οnclick=rs();>
以下是一个随意文件名的htm文件:
<FRAMESET COLS="150,*">
<FRAME SRC="left.htm" name=left> > //给这个left.htm定义了一个名字叫left
<FRAMESET ROWS="150,*">
<FRAME SRC="top.htm" name=top> //给这个top.htm定义了一个名字叫top
<FRAME SRC="bot.htm" name=bot> //给这个bot.htm定义了一个名字叫bot
</FRAMESET>
</FRAMESET>
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由上下两个页面组成,代码如下:
<frameset rows="50%,50%"><frame name=top src="top.html"><frame name=button src="button.html"></frameset>
现在假设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地址