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 相关文章推荐
js中scrollTop()方法和scroll()方法用法示例
Oct 03 Javascript
JS中关于事件处理函数名后面是否带括号的问题
Nov 16 Javascript
Iphone手机、安卓手机浏览器控制默认缩放大小的方法总结(附代码)
Aug 18 Javascript
webpack配置之后端渲染详解
Oct 26 Javascript
Thinkjs3新手入门之添加一个新的页面
Dec 06 Javascript
vue使用 better-scroll的参数和方法详解
Jan 25 Javascript
react配置antd按需加载的使用
Feb 11 Javascript
Vue传参一箩筐(页面、组件)
Apr 04 Javascript
jQuery Migrate 插件用法实例详解
May 22 jQuery
vue.js+ElementUI实现进度条提示密码强度效果
Jan 18 Javascript
vue Treeselect下拉树只能选择第N级元素实现代码
Aug 31 Javascript
vue 中使用print.js导出pdf操作
Nov 13 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
discuz Passport 通行证 整合笔记
2008/06/30 PHP
Sorting Array Values in PHP(数组排序)
2011/09/15 PHP
php全角字符转换为半角函数
2014/02/07 PHP
Yii统计不同类型邮箱数量的方法
2016/10/18 PHP
表格 隔行换色升级版
2009/11/07 Javascript
JQuery团队打造的javascript单元测试工具QUnit介绍
2010/02/26 Javascript
javascript onmouseout 解决办法
2010/07/17 Javascript
javascript中的float运算精度实例分析
2010/08/21 Javascript
FusionCharts图表显示双Y轴双(多)曲线
2012/11/22 Javascript
通过正则表达式实现表单验证是否为中文
2014/02/18 Javascript
JS常用函数使用指南
2014/11/23 Javascript
JS实现带有3D立体感的银灰色竖排折叠菜单代码
2015/10/20 Javascript
JavaScript操作URL的相关内容集锦
2015/10/29 Javascript
angular2使用简单介绍
2016/03/01 Javascript
js 弹出虚拟键盘修改密码的简单实例
2016/10/10 Javascript
JS/jQuery判断DOM节点是否存在的简单方法
2016/11/24 Javascript
详解win7 cmd执行vue不是内部命令的解决方法
2017/07/27 Javascript
微信小程序组件之srcoll-view的详解
2017/10/19 Javascript
微信小程序实现添加手机联系人功能示例
2017/11/30 Javascript
React router动态加载组件之适配器模式的应用详解
2018/09/12 Javascript
Vue 嵌套路由使用总结(推荐)
2020/01/13 Javascript
jdk1.8+vue elementui实现多级菜单功能
2020/09/24 Javascript
在Python程序中操作MySQL的基本方法
2015/07/29 Python
Python六大开源框架对比
2015/10/19 Python
Python基于pygame实现的弹力球效果(附源码)
2015/11/11 Python
利用Tensorboard绘制网络识别准确率和loss曲线实例
2020/02/15 Python
泰坦健身器材:Titan Fitness
2018/02/13 全球购物
法国在线宠物店:zooplus.fr
2018/02/23 全球购物
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
2014/09/26 面试题
初中生三年学习生活的自我评价
2013/11/03 职场文书
图书室管理制度
2014/01/19 职场文书
环保公益策划方案
2014/08/15 职场文书
2014最新开业庆典策划方案(5篇)
2014/09/15 职场文书
法人授权委托书样本
2014/09/19 职场文书
搞笑老公保证书
2015/02/26 职场文书
党员学习中国梦心得体会
2016/01/05 职场文书