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 类
Nov 07 Javascript
JavaScript实现禁止后退的方法
Dec 27 Javascript
JQuery的$和其它JS发生冲突的快速解决方法
Jan 24 Javascript
Node.js 的异步 IO 性能探讨
Oct 08 Javascript
了不起的node.js读书笔记之例程分析
Dec 22 Javascript
全面解析Bootstrap排版使用方法(文字样式)
Nov 30 Javascript
深入理解JS中的substr和substring
Apr 26 Javascript
JS中将多个逗号替换为一个逗号的实现代码
Jun 23 Javascript
vue2.0设置proxyTable使用axios进行跨域请求的方法
Oct 19 Javascript
Vue完整项目构建(进阶篇)
Feb 10 Javascript
浅谈vue-router路由切换 组件重用挖下的坑
Nov 01 Javascript
使用vue cli4.x搭建vue项目的过程详解
May 08 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
150kHz到30Mhz完全冲浪手册
2020/03/20 无线电
PHP 命令行工具 shell_exec, exec, passthru, system详细使用介绍
2011/09/11 PHP
php微信公众平台示例代码分析(二)
2016/12/06 PHP
PHP常用字符串函数小结(推荐)
2018/08/05 PHP
AngularJS语法详解(续)
2015/01/23 Javascript
javascript使用shift+click实现选择和反选checkbox的方法
2015/05/04 Javascript
Jquery解析json字符串及json数组的方法
2015/05/29 Javascript
js 上传文件预览的简单实例
2016/08/16 Javascript
JavaScript 最佳实践:帮你提升代码质量
2016/12/03 Javascript
浅谈 Vue v-model指令的实现原理
2017/06/08 Javascript
微信小程序 自定义Toast实例代码
2017/06/12 Javascript
js脚本编写简单刷票投票系统
2017/06/27 Javascript
node koa2实现上传图片并且同步上传到七牛云存储
2017/07/31 Javascript
vue2 拖动排序 vuedraggable组件的实现
2019/08/08 Javascript
Vue 根据条件判断van-tab的显示方式
2020/08/03 Javascript
Python lxml模块安装教程
2015/06/02 Python
Python多进程库multiprocessing中进程池Pool类的使用详解
2017/11/24 Python
Python语言描述机器学习之Logistic回归算法
2017/12/21 Python
python3.x上post发送json数据
2018/03/04 Python
wxPython的安装与使用教程
2018/08/31 Python
python如何通过pyqt5实现进度条
2020/01/20 Python
解决python Jupyter不能导入外部包问题
2020/04/15 Python
使用PyQt5实现图片查看器的示例代码
2020/04/21 Python
python 画条形图(柱状图)实例
2020/04/24 Python
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?
2016/08/18 面试题
大学生实习证明范本
2014/01/15 职场文书
男方父母婚礼答谢词
2014/01/25 职场文书
清洁工岗位职责
2014/01/29 职场文书
房地产财务管理制度
2014/02/02 职场文书
竞选部门副经理的自荐书范文
2014/02/11 职场文书
学校推普周活动总结
2015/05/07 职场文书
2015年毕业实习工作总结
2015/05/29 职场文书
调解协议书范本
2016/03/21 职场文书
详解如何用Python实现感知器算法
2021/06/18 Python
详解Java七大阻塞队列之SynchronousQueue
2021/09/04 Java/Android
一定要知道的 25 个 Vue 技巧
2021/11/02 Vue.js