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


Posted in Javascript onAugust 09, 2014

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

Javascript 相关文章推荐
JQuery.uploadify 上传文件插件的使用详解 for ASP.NET
Jan 22 Javascript
解读JavaScript代码 var ie = !-[1,] 最短的IE判定代码
May 28 Javascript
用jquery写的一个万年历(自写)
Jan 20 Javascript
js实现点击链接后延迟3秒再跳转的方法
Jun 05 Javascript
简述JavaScript对传统文档对象模型的支持
Jun 16 Javascript
Bootstrap CSS组件之下拉菜单(dropdown)
Dec 17 Javascript
jQuery实现搜索页面关键字的功能
Feb 16 Javascript
深入理解vue-loader如何使用
Jun 06 Javascript
Vue SPA单页应用首屏优化实践
Jun 28 Javascript
layui表格内放置图片,并点击放大的实例
Sep 10 Javascript
深入解读VUE中的异步渲染的实现
Jun 19 Javascript
解决Vue @submit 提交后不刷新页面问题
Jul 18 Javascript
javascript父、子页面交互技巧总结
Aug 08 #Javascript
jQuery的animate函数学习记录
Aug 08 #Javascript
jQuery中get和post方法传值测试及注意事项
Aug 08 #Javascript
JSON.stringify转换JSON时日期时间不准确的解决方法
Aug 08 #Javascript
js事件监听机制(事件捕获)总结
Aug 08 #Javascript
使用jquery.qrcode生成彩色二维码实例
Aug 08 #Javascript
兼容最新firefox、chrome和IE的javascript图片预览实现代码
Aug 08 #Javascript
You might like
用PHP 4.2书写安全的脚本
2006/10/09 PHP
php检测数组长度函数sizeof与count用法
2014/11/17 PHP
php结合mysql与mysqli扩展处理事务的方法
2016/06/29 PHP
php 调用ffmpeg获取视频信息的简单实现
2017/04/03 PHP
PHP实现上传图片到数据库并显示输出的方法
2018/05/31 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
2020/02/27 PHP
JavaScript中自定义事件用法分析
2014/12/23 Javascript
学习javascript面向对象 javascript实现继承的方式
2016/01/04 Javascript
微信小程序 支付功能开发错误总结
2017/02/21 Javascript
jQuery实现可拖动进度条实例代码
2017/06/21 jQuery
深入理解Vue.js源码之事件机制
2017/09/27 Javascript
AngularJS中table表格基本操作示例
2017/10/10 Javascript
详解使用webpack打包编写一个vue-toast插件
2017/11/08 Javascript
vue实现验证码按钮倒计时功能
2018/04/10 Javascript
vue异步axios获取的数据渲染到页面的方法
2018/08/09 Javascript
vue使用自定义指令实现拖拽
2021/01/29 Javascript
防止Layui form表单重复提交的实现方法
2019/09/10 Javascript
layui 上传图片 返回图片地址的方法
2019/09/26 Javascript
[45:46]2014 DOTA2国际邀请赛中国区预选赛5.21 HGT VS DT
2014/05/23 DOTA
Python检测QQ在线状态的方法
2015/05/09 Python
Python切换pip安装源的方法详解
2016/11/18 Python
python实现俄罗斯方块
2018/06/26 Python
python3+PyQt5 实现Rich文本的行编辑方法
2019/06/17 Python
python在openstreetmap地图上绘制路线图的实现
2019/07/11 Python
selenium+python自动化78-autoit参数化与批量上传功能的实现
2021/03/04 Python
What's the difference between Debug and Trace class? (Debug类与Trace类有什么区别)
2013/09/10 面试题
考试退步检讨书
2014/01/15 职场文书
保护动物倡议书
2014/04/15 职场文书
村庄环境整治方案
2014/05/15 职场文书
2015年安置帮教工作总结
2015/05/22 职场文书
大学生军训感言
2015/08/01 职场文书
生日宴会祝酒词
2015/08/10 职场文书
《天使的翅膀》读后感3篇
2019/12/20 职场文书
apache基于端口创建虚拟主机的示例
2021/04/24 Servers
详解CSS3.0(Cascading Style Sheet) 层叠级联样式表
2021/07/16 HTML / CSS
关于Redis的主从复制及哨兵问题
2022/06/16 Redis