window.location属性实例详解

发布时间:2020-11-29编辑:脚本学堂
有关window.location属性的用法分析,window.location 对象所包含的属性,需要的朋友参考下。

window.location.href 属性

获取页面 url 地址:
window.location.href = window.location.href;

window.location 对象所包含的属性
 

属性  描述
hash  从井号 (#) 开始的 URL(锚)
host  主机名和当前 URL 的端口号
hostname  当前 URL 的主机名
href  完整的 URL
pathname  当前 URL 的路径部分
port  当前 URL 的端口号
protocol  当前 URL 的协议
search  从问号 (?) 开始的 URL(查询部分)
window.location.hash
 

要使用 JS 定位锚点,完全可以使用 window.hash 配合元素 ID 完成。比如快速定位到页面的某条评论,则直接使用如下代码即可:

window.location.hash = "#comment-5981";
另外 Twitter、Facebook、Google 等已经开始大量使用 #! 这种形式的 hash 方法处理异步交互页面的 URL 可回溯功能。

window.location.search

URL 地址:
http://www.google.com.hk/search?hl=zh-CN&source=hp&biw=1400&bih=935&q=%E8%8A%92%E6%9E%9C%E5%B0%8F%E7%AB%99&aq=f&aqi=&aql=&oq=
如何利用 js 脚本捕获页面 get 方式请求的参数?其实直接使用 window.location.search 获得,然后通过 split 方法结合循环遍历自由组织数据格式。

另外,如果根据用户的搜索条件刷新页面,只需直接设置 window.location.search 即可。

window.location.Reload()和window.location.href 区别
语法:
reload 方法,该方法强迫浏览器刷新当前页面
语法:location.reload([bForceGet])参数: bForceGet, 可选参数, 默认为 false,从客户端缓存里取当前页。 true, 则以GET 方式,从服务端取最新的页面, 相当于客户端点击 F5("刷新")
replace 方法,该方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,你不能通过“前进”和“后退”来访问已经被替换的URL。
语法:location.replace(URL) 参数: URL
在实际应用的时候,重新刷新页面的时候,我们通常使用: location.reload() 或者是 history.go(0) 来做。因为这种做法就像是客户端点F5刷新页面,所以页面的method="post"的时候,会出现“网页过期”的提示。那是因为Session的安全保护机制。可以想到: 当调用 location.reload() 方法的时候, aspx页面此时在服务端内存里已经存在, 因此必定是 IsPostback 的。如果有这种应用:需要重新加载该页面,即期望页面能够在服务端重新被创建,期望是 Not IsPostback 的。这里,location.replace() 就可以完成此任务。
被replace的页面每次都在服务端重新生成。

代码:
 

location.replace(location.href)
====
<a onclick="javascript:window.location.href=window.location.href;">
<a onclick="javascript:window.location.reload();">

测试效果一样。表单没有提交。
<input type="submit" onclick="javascript:window.location.reload();" value="单击" id="btnVCode" />
<input type="submit" onclick="javascript:window.location.href=window.location.href;" value="单击" id="btnVCode" />

都提交数据
window.location.Reload()应该是刷新.(如果有数据提交的话,会提示是否提交的(是和否选项))
window.location.href=window.location.href; 是定向url提交数据

最好不要用location.reload(),而用location=location比较好,还有在模式窗口(showModalDialog和showModelessDialog)前者不能用。

reload参数有true和false,比较有意思?

避免重复提交
 

protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
    string nr = ((DataRowView)e.Item.DataItem).Row["GZZDS"].ToString();
    string id = ((DataRowView)e.Item.DataItem).Row["RZID"].ToString();
    string rid = ((DataRowView)e.Item.DataItem).Row["RWXH"].ToString();
    string link = "";

    if (nr == "")
    {
link = "<a href='#' onclick="selectGuide2('BookDoc.aspx?type=2&Id=" + id + "&rid=" + rid + "&Rnd='+Math.random());location=location;">选择指导书</a>";
    }
    else
    {
string t = (ViewState["State"].ToString() == "Query" || ((DataRowView)e.Item.DataItem).Row["GZZT"].ToString() == "工作结束") ? "false" : "true";
string path=((DataRowView)e.Item.DataItem).Row["GZZDSPath"].ToString();      

link = "<a href='#' onclick="EditWord('" + path + "'," + t + ")">" + nr + "</a>";
    }

    ((Literal)e.Item.FindControl("Literal1")).Text = link;
}
}

window.location.Reload()和window.location.href  window.location.Reload()应该是刷新.(如果有数据提交的话,会提示是否提交的(是和否选项))
window.location.href=window.location.href;
是定向url提交数据

是大的区别还是是否提交数据了。
 

function refresh()
{
//刷新页面函数
//window.focus();刷新窗口
//document.execCommand("Refresh");刷新窗口
//self.location.reload();刷新当前窗口
parent.location.reload();刷新父窗口
//aaa.location.reload();弹出窗口刷新父窗口
}  
 

使用window.location.replace() or window.location.href(), 来重新加载此页面不出现提示框

 关于js中"window.location.href"、"location.href"、"parent.location.href"、"top.location.href"的用法
分类: Asp.Net基础 2011-12-03 10:06 1276人阅读 评论(0) 收藏 举报
iframejspc框架
iframe框架的页面跳转 
 

var win = self.parent.document.getElementById('right').contentWindow;
win.document.location.href = "VipManage.aspx";
----------------------------------------------
"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>:  form提交后D页面跳转
<form target="_blank">:  form提交后弹出新页面
<form target="_parent">:  form提交后C页面跳转
<form target="_top"> :  form提交后A页面跳转

关于页面刷新,D 页面中这样写:
"parent.location.reload();": C页面刷新  (当然,也可以使用子窗口的 opener 对象来获得父窗口的对象:window.opener.document.location.reload(); )
"top.location.reload();": A页面刷新