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 相关文章推荐
js jq 单击和双击区分示例介绍
Nov 05 Javascript
使用JavaScript获取电池状态的方法
May 03 Javascript
javascript遇到html5的一些表单属性
Jul 05 Javascript
javascript滚轮控制模拟滚动条
Oct 19 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(1)
Feb 20 Javascript
浅谈Angular路由复用策略
Oct 04 Javascript
jquery 实现拖动文件上传加载进度条功能
Mar 18 jQuery
Angular 容器部署的方法
Apr 17 Javascript
node打造微信个人号机器人的方法示例
Apr 26 Javascript
微信小程序之自定义组件的实现代码(附源码)
Aug 02 Javascript
jQuery ajax仿Google自动提示SearchSuggess功能示例
Mar 28 jQuery
vue打包npm run build时候界面报错的解决
Aug 13 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/03 冲泡冲煮
编写php应用程序实现摘要式身份验证的方法详解
2013/06/08 PHP
php利用腾讯ip分享计划获取地理位置示例分享
2014/01/20 PHP
PHP微信公众号开发之微信红包实现方法分析
2017/07/14 PHP
javascript 数组排序函数
2009/08/20 Javascript
提高网站性能之 如何对待JavaScript
2009/10/31 Javascript
Jquery弹出窗口插件 LeanModal的使用方法
2012/03/10 Javascript
JS+CSS制作DIV层可(最小化/拖拽/排序)功能实现代码
2013/02/25 Javascript
JS实现商品倒计时实现代码
2013/05/03 Javascript
JavaScript实现的SHA-1加密算法完整实例
2016/02/02 Javascript
新闻上下滚动jquery 超简洁(必看篇)
2017/01/21 Javascript
百度地图JavascriptApi Marker平滑移动及车头指向行径方向
2017/03/13 Javascript
浅谈JS封闭函数、闭包、内置对象
2017/07/18 Javascript
Vue2.0子同级组件之间数据交互方法
2018/02/28 Javascript
详解JavaScript中操作符和表达式
2018/09/12 Javascript
vue-cli3+typescript初体验小结
2019/02/28 Javascript
基于Vue实现电商SKU组合算法问题
2019/05/29 Javascript
小程序实现横向滑动日历效果
2019/10/21 Javascript
微信小程序地图绘制线段并且测量(实例代码)
2020/01/02 Javascript
jQuery操作元素追加内容示例
2020/01/10 jQuery
微信小程序实现手指拖动选项排序
2020/04/22 Javascript
vue实现一个矩形标记区域(rectangle marker)的方法
2020/10/28 Javascript
python实现批量监控网站
2016/09/09 Python
在 Jupyter 中重新导入特定的 Python 文件(场景分析)
2019/10/27 Python
使用 Python 清理收藏夹里已失效的网站
2019/12/03 Python
Python 寻找局部最高点的实现
2019/12/05 Python
python实现word文档批量转成自定义格式的excel文档的思路及实例代码
2020/02/21 Python
Django模板标签{% for %}循环,获取制定条数据实例
2020/05/14 Python
医学护理毕业生自荐信
2013/11/07 职场文书
给儿子的表扬信
2014/01/15 职场文书
秘书英文求职信
2014/04/16 职场文书
医学生自荐信范文
2015/03/05 职场文书
道歉的话语大全
2015/05/12 职场文书
庆元旦主持词
2015/07/06 职场文书
幼儿园小班班务总结
2015/08/03 职场文书
MySQL创建高性能索引的全步骤
2021/05/02 MySQL