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 相关文章推荐
Jquery中dialog属性小记
Sep 03 Javascript
jquery中动态效果小结
Dec 16 Javascript
jQueryUI写一个调整分类的拖放效果实现代码
May 10 Javascript
Textarea根据内容自适应高度
Oct 28 Javascript
深入分析下javascript中的[]()+!
Jul 07 Javascript
jQuery简单实现两级下拉菜单效果代码
Sep 15 Javascript
JS动态改变浏览器标题的方法
Apr 06 Javascript
全面理解JavaScript中的闭包
May 12 Javascript
原生js仿jquery animate动画效果
Jul 13 Javascript
JavaScript 事件对内存和性能的影响
Jan 22 Javascript
深入理解node.js之path模块
May 03 Javascript
JQuery常用选择器功能与用法实例分析
Dec 23 jQuery
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
图解找出PHP配置文件php.ini的路径的方法
2014/08/20 PHP
轻轻松松学习JavaScript
2007/02/25 Javascript
js实现屏蔽默认快捷键调用自定义事件示例
2013/06/18 Javascript
关闭ie窗口清除Session的解决方法
2014/01/10 Javascript
js关于精确计算和数值格式化以及直接引js文件
2014/01/28 Javascript
JS替换字符串中字符即替换全部而不是第一个
2014/06/04 Javascript
javascript在IE下trim函数无法使用的解决方法
2014/09/12 Javascript
javascript将url中的参数加密解密代码
2014/11/17 Javascript
javascript每日必学之条件分支
2016/02/17 Javascript
深入理解jquery跨域请求方法
2016/05/18 Javascript
Node.js配合node-http-proxy解决本地开发ajax跨域问题
2016/08/31 Javascript
jQuery实现导航滚动到指定内容效果完整实例【附demo源码下载】
2016/09/20 Javascript
Bootstrap源码解读导航(6)
2016/12/23 Javascript
vue中使用vue-router切换页面时滚动条自动滚动到顶部的方法
2017/11/28 Javascript
js数组方法reduce经典用法代码分享
2018/01/07 Javascript
Vue-cli项目获取本地json文件数据的实例
2018/03/07 Javascript
JavaScript实现的DOM树遍历方法详解【二叉DOM树、多叉DOM树】
2018/05/07 Javascript
nodejs更改项目端口号的方法
2018/05/13 NodeJs
react高阶组件添加和删除props
2019/04/26 Javascript
Django 添加静态文件的两种实现方法(必看篇)
2017/07/14 Python
Python文本特征抽取与向量化算法学习
2017/12/22 Python
Django 过滤器汇总及自定义过滤器使用详解
2019/07/19 Python
python爬虫 2019中国好声音评论爬取过程解析
2019/08/26 Python
Python实现企业微信机器人每天定时发消息实例
2020/02/25 Python
python函数map()和partial()的知识点总结
2020/05/26 Python
Python unittest如何生成HTMLTestRunner模块
2020/09/08 Python
Anaconda详细安装步骤图文教程
2020/11/12 Python
python基于openpyxl生成excel文件
2020/12/23 Python
Python用户自定义异常的实现
2020/12/25 Python
HTML5自定义data-* data(obj)属性和jquery的data()方法的使用
2012/12/13 HTML / CSS
html5 CSS过度-webkit-transition使用介绍
2013/07/02 HTML / CSS
伊芙丽官方旗舰店:中国淑女一线品牌
2017/12/01 全球购物
靠谱准确的求职信
2019/04/02 职场文书
60句有关成长的名言
2019/09/04 职场文书
opencv 分类白天与夜景视频的方法
2021/06/05 Python
使用Django框架创建项目
2022/06/10 Python