JS基于Location实现访问Url、重定向及刷新页面的方法分析


Posted in Javascript onDecember 03, 2018

本文实例讲述了JS基于Location实现访问Url、重定向及刷新页面的方法。分享给大家供大家参考,具体如下:

js通过Location实现访问Url,重定向,刷新页

web中经常会使用到刷新页面,访问url、重定向请求的功能。

javascript提供了许多方法访问,修改当前用户在浏览器中访问的url.所有的这些技术都是基于location对象的。它是作为window对象的属性。你可以生成一个包含当前url的新location对象:

var currentURL=window.location;

在这片文章你将看到location对象的所有属性和方法,你将学到:

  • 怎么读取url不同部分
  • 怎么重定向网页
  • 怎么自动刷新或重载页面.

1.分析url

URL有6部分组成,一些是可选的:

<协议>//<域名>:<端口>/<路径><查询参数><hash>
<protocol>//<hostname>:<port>/<pathname><search><hash>

协议和域名是必须项,其它是可选项。

下面是一个包含所有部分的URL例子:

http://www.example.com:80/example.cgi?x=3&y=4#results

在这个例子中, http: 是 协议, www.example.com 是 域名, 80 是端口, /example.cgi 是路径, ?x=3&y=4是查询字符串, #results是hash, 或页面内部的锚点.

2.通过Location读取当前的URL

你可以使用location对象的protocol,hostname,port,pathname,search,hash属性访问URL各个部分。你还可以使用下面属性:

host
  包含域名和端口例如: www.example.com:80

href
  包含整个URL例如:http://www.example.com:80/example.cgi?x=3&y=4#results

示例:

var currentURL=window.location;
alert(currentURL.href);//Displays'http://www.example.com:80/example.cgi?x=3&y=4#results'
alert(currentURL.protocol);//Displays'http:'
alert(currentURL.host);//Displays'www.example.com:80'
alert(currentURL.hostname);//Displays'www.example.com'
alert(currentURL.port);//Displays'80'
alert(currentURL.pathname);//Displays'/example.cgi'
alert(currentURL.search);//Displays'?x=3&y=4'
alert(currentURL.hash);//Displays'#results'

3.使用Location操作URL

你可以使用location的href属性,把页面跳转到不同于当前页面的页面。

window.location.href="http://www.example.com/anotherpage.html" rel="external nofollow" ;

示例:

<input type="button" onclick="window.location.href='http://www.google.com/'"
value="Visit www.google.com"/>

使用Location的href属性跳转页面,前一页的Url会保存在浏览器的history历史中。当用户点击浏览器的“后退”按钮可以返回前一页。如果你不想让返回前一页可使用Location.replace()代替:

window.location.replace("http://www.example.com/anotherpage.html");

除了可以将页面重定向不用的页面,还可重定向当前页面不同的锚点

window.location.hash="#moreResults";

例如:

<input type="button" onclick="window.location.hash='#top'"
value="Jump to the top of the page"/>

在页面有个名为#top的锚点。点击按钮时浏览器会移动到顶部。注意观察浏览器地址栏的变化,当你点击浏览器后退按钮可回到前一位置。

4.重载刷新页面

可以调用Location.reload()强制浏览器重新刷新当前URL.就像当前用户点击浏览器的刷新按钮或F5一样。

window.location.reload();

如果该方法没有规定参数,或者参数是 false,它就会用 HTTP 头 If-Modified-Since 来检测服务器上的文档是否已改变。如果文档已改变,reload() 会再次下载该文档。如果文档未改变,则该方法将从缓存中装载文档。这与用户单击浏览器的刷新按钮的效果是完全一样的。

如果把该方法的参数设置为 true,那么无论文档的最后修改日期是什么,它都会绕过缓存,从服务器上重新下载该文档。这与用户在单击浏览器的刷新按钮时按住 Shift 健的效果是完全一样。

window.location.reload(true);

简单示例:

<input type="button" onclick="window.location.reload()"
value="Reload the page"/>

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
javascript void(0)的妙用
Oct 21 Javascript
javascript学习笔记(五)正则表达式
Apr 08 Javascript
js列举css中所有图标的实现代码
Jul 04 Javascript
文件编码导致jquery失效的解决方法
Jun 26 Javascript
javascript框架设计读书笔记之模块加载系统
Dec 02 Javascript
jQuery中outerHeight()方法用法实例
Jan 19 Javascript
JavaScript中的getTimezoneOffset()方法使用详解
Jun 10 Javascript
JS运动特效之任意值添加运动的方法分析
Jan 24 Javascript
详解webpack-dev-server的简单使用
Apr 02 Javascript
详解ES6 Promise对象then方法链式调用
Oct 20 Javascript
HTML+JavaScript实现扫雷小游戏
Sep 30 Javascript
JavaScript文档加载模式以及元素获取
Jul 28 Javascript
koa2实现登录注册功能的示例代码
Dec 03 #Javascript
react-router 路由切换动画的实现示例
Dec 03 #Javascript
Vue.js 中的 v-model 指令及绑定表单元素的方法
Dec 03 #Javascript
ng-zorro-antd 入门初体验
Dec 03 #Javascript
如何使用 vue + d3 画一棵树
Dec 03 #Javascript
Vue.js中 v-model 指令的修饰符详解
Dec 03 #Javascript
浅谈ng-zorro使用心得
Dec 03 #Javascript
You might like
自己做矿石收音机
2021/03/02 无线电
php中批量修改文件后缀名的函数代码
2011/10/23 PHP
php中smarty变量修饰用法实例分析
2015/06/11 PHP
thinkphp实现把数据库中的列的值存到下拉框中的方法
2017/01/20 PHP
Yii Framework框架开发微信公众平台示例
2020/04/26 PHP
JavaScript实现LI列表数据绑定的方法
2015/08/04 Javascript
JS实现屏蔽网页右键复制及ctrl+c复制的方法【2种方法】
2016/09/04 Javascript
把json格式的字符串转换成javascript对象或数组的方法总结
2016/11/03 Javascript
浅谈js函数中的实例对象、类对象、局部变量(局部函数)
2016/11/20 Javascript
canvas实现粒子时钟效果
2017/02/06 Javascript
微信小程序实现提交input信息到后台的方法示例
2019/01/19 Javascript
JavaScript实现多张图片放大镜效果示例【不限定图片尺寸,rem单位】
2019/05/14 Javascript
Hadoop中的Python框架的使用指南
2015/04/22 Python
实例讲解Python的函数闭包使用中应注意的问题
2016/06/20 Python
Python基础练习之用户登录实现代码分享
2017/11/08 Python
利用Python对文件夹下图片数据进行批量改名的代码实例
2019/02/21 Python
三步实现Django Paginator分页的方法
2019/06/11 Python
Python绘制堆叠柱状图的实例
2019/07/09 Python
python如何实现从视频中提取每秒图片
2020/10/22 Python
Pandas时间序列重采样(resample)方法中closed、label的作用详解
2019/12/10 Python
Python中断多重循环的几种方式详解
2020/02/10 Python
python自动从arxiv下载paper的示例代码
2020/12/05 Python
澳大利亚在线批发商:Simply Wholesale
2021/02/24 全球购物
UNOde50美国官网:西班牙珠宝品牌
2020/08/15 全球购物
应征英语教师求职信
2013/11/27 职场文书
学习十八大坚定理想信念心得体会
2014/03/11 职场文书
读书小明星事迹材料
2014/05/03 职场文书
班级口号大全
2014/06/09 职场文书
加强作风建设演讲稿
2014/10/24 职场文书
教导主任个人总结
2015/03/03 职场文书
2015年光棍节活动总结
2015/03/24 职场文书
2015年收银工作总结范文
2015/04/01 职场文书
车间主任岗位职责范本
2015/04/08 职场文书
GoLang中生成UUID唯一标识的实现
2021/05/08 Golang
Redis 哨兵集群的实现
2021/06/18 Redis
Java常用函数式接口总结
2021/06/29 Java/Android