window.laction.href的用法

本文介绍了JavaScript中window.location.href的多种用法,包括不同场景下的页面跳转、框架内的页面刷新及表单提交后的页面操作。同时对比了与Response.Redirect的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

window.location.href的用法(动态输出跳转)


无论在静态页面还是动态输出页面中window.location.href都是不错的用了跳转的实现方案

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>: 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页面刷新




<!DOCTYPE html>
<html>
<body>
<script type="text/javascript">
window.location.href="../loginSub/toSellerIndexPage";
</script>

</body>
</html>

### 正确使用 `window.open` 和 `window.location.href` #### 使用场景 对于页面跳转的需求,开发者可以选择两种主要方式来实现:通过设置 `window.location.href` 或调用 `window.open()` 函数。 #### 设置 `window.location.href` 当希望在同一窗口内改变当前页面地址时,可以简单地给 `window.location.href` 赋值新的URL字符串。这会使得浏览器加载并显示该链接指向的内容,类似于用户点击了一个超链接的效果[^1]: ```javascript // 修改当前页面位置为指定的新网址 window.location.href = "http://example.com"; ``` 此操作不会创建额外的浏览上下文(即不开启新标签页),而是直接替换掉现有文档的位置记录。 #### 调用 `window.open()` 另一方面,如果目标是在保持原页面不变的情况下另起一个新的浏览环境,则应该考虑采用 `window.open(url, target)` 来完成这一任务[^3]。第二个参数指定了新资源应在何处展示,默认情况下是 `_self`(当前框架),也可以设定成其他特殊名称如 `_blank` 表示新开一个空白标签页;或者是已命名过的窗口/iframe的名字以便重用特定容器: ```javascript // 在新标签页中打开外部网站 var newWindow = window.open("https://www.example.org", "_blank"); if (!newWindow || newWindow.closed || typeof newWindow.closed=='undefined') { console.error('Popup blocked'); } ``` 值得注意的是,在某些安全策略下,弹出窗口可能会被阻止,因此最好加入检测逻辑以应对这种情况的发生。 #### 参数传递及其他特性 除了基本的功能差异外,这两个API还提供了更多灵活性供开发人员利用。比如可以通过向 `window.open()` 提交第三个可选参数列表来自定义子窗口外观尺寸和其他行为特征;而对于 `location` 对象来说,还可以访问其下的多个只读属性获取有关当前位置的信息,像主机名(`hostname`)、端口号(`port`)等[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值