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二级导航内容均分的原理及实现
Aug 13 Javascript
jQuery学习笔记之创建DOM元素
Jan 19 Javascript
jQuery实现导航高亮的方法【附demo源码下载】
Nov 09 Javascript
bootstrap常用组件之头部导航实现代码
Apr 20 Javascript
JS字符串去除连续或全部重复字符的实例
Mar 08 Javascript
webpack 插件html-webpack-plugin的具体使用
Apr 09 Javascript
浅谈vue中.vue文件解析流程
Apr 24 Javascript
微信小程序文章详情页跳转案例详解
Jul 09 Javascript
详解小程序BackgroundAudioManager踩坑之旅
Dec 08 Javascript
15分钟上手vue3.0(小结)
May 20 Javascript
JS实现选项卡插件的两种写法(jQuery和class)
Dec 30 jQuery
vue常用高阶函数及综合实例
Feb 25 Vue.js
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有道翻译api调用方法实例
2014/12/22 PHP
php项目开发中用到的快速排序算法分析
2016/06/25 PHP
CodeIgniter框架钩子机制实现方法【hooks类】
2018/08/21 PHP
jQuery 数据缓存data(name, value)详解及实现
2010/01/04 Javascript
前淘宝前端开发工程师阿当的PPT中有JS技术理念问题
2010/01/15 Javascript
怎么清空javascript数组
2013/05/11 Javascript
javascript使用百度地图api和html5特性获取浏览器位置
2014/01/10 Javascript
对于Form表单reset方法的新认识
2014/03/05 Javascript
js实现索引图片切换效果
2015/11/21 Javascript
JS判断图片是否加载完成方法汇总(最新版)
2016/05/13 Javascript
JavaScript中的跨浏览器事件操作的基本方法整理
2016/05/20 Javascript
详解Webpack DLL用法以及功能
2017/07/11 Javascript
VUE中使用Vue-resource完成交互
2017/07/21 Javascript
jquery动态添加以及遍历option并获取特定样式名称的option方法
2018/01/29 jQuery
node实现登录图片验证码的示例代码
2018/04/20 Javascript
Vue注册组件命名时不能用大写的原因浅析
2019/04/25 Javascript
vuejs移动端实现div拖拽移动
2019/07/25 Javascript
使用JavaScript通过前端发送电子邮件
2020/05/22 Javascript
[03:00]2018完美盛典_最佳英雄奖
2018/12/17 DOTA
[40:53]完美世界DOTA2联赛PWL S3 Magma vs DLG 第二场 12.18
2020/12/20 DOTA
基于python OpenCV实现动态人脸检测
2018/05/25 Python
Python实现获取邮箱内容并解析的方法示例
2018/06/16 Python
基于腾讯云服务器部署微信小程序后台服务(Python+Django)
2019/05/08 Python
python保存字典和读取字典的实例代码
2019/07/07 Python
python进程池实现的多进程文件夹copy器完整示例
2019/11/27 Python
Python txt文件常用读写操作代码实例
2020/08/03 Python
英国泽西岛植物:Jersey Plants Direct
2019/08/07 全球购物
《吃水不忘挖井人》教学反思
2014/04/15 职场文书
三年级班级文化建设方案
2014/05/04 职场文书
2014年宣传工作总结
2014/11/18 职场文书
2015年安全月活动总结
2015/03/26 职场文书
三十年同学聚会致辞
2015/07/28 职场文书
给numpy.array增加维度的超简单方法
2021/06/02 Python
Python人工智能之混合高斯模型运动目标检测详解分析
2021/11/07 Python
MySQL中order by的执行过程
2022/06/05 MySQL
Win11如何查看显卡型号 Win11查看显卡型号的方法
2022/08/14 数码科技