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 表单中textarea字数限制实现代码
Dec 07 Javascript
AJAX 网页保留浏览器前进后退等功能
Feb 12 Javascript
javascript设置金额样式转换保留两位小数示例代码
Dec 04 Javascript
用js代码改变单选框选中状态的简单实例
Dec 18 Javascript
js弹出div并显示遮罩层
Feb 12 Javascript
jquery实现在页面加载完毕后获取图片高度或宽度
Jun 16 Javascript
js QQ客服悬浮效果实现代码
Dec 12 Javascript
JavaScript代码实现禁止右键、禁选择、禁粘贴、禁shift、禁ctrl、禁alt
Nov 17 Javascript
浅析Javascript中bind()方法的使用与实现
Apr 29 Javascript
微信小程序开发之实现选项卡(窗口顶部TabBar)页面切换
Nov 25 Javascript
详解Vue.js入门环境搭建
Mar 17 Javascript
微信小程序中wxs文件的一些妙用分享
Feb 18 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
千呼万唤始出来,DOTA2勇士令状不朽宝藏Ⅱ现已推出
2020/08/25 DOTA
php xml文件操作代码(一)
2009/03/20 PHP
php使用递归计算文件夹大小
2014/12/24 PHP
js+php实现静态页面实时调用用户登陆状态的方法
2015/01/04 PHP
php简单操作mysql数据库的类
2015/04/16 PHP
Prototype Number对象 学习
2009/07/19 Javascript
firefox下frameset取不到值的解决方法
2010/09/06 Javascript
Extjs TimeField 显示正常时间格式的代码
2011/06/28 Javascript
js和jquery使按钮失效为不可用状态的方法
2014/01/26 Javascript
js实现仿网易点击弹出提示同时背景变暗效果
2015/08/13 Javascript
Bootstrap每天必学之附加导航(Affix)插件
2016/04/25 Javascript
AngularJS 遇到的小坑与技巧小结
2016/06/07 Javascript
关于Vue.js一些问题和思考学习笔记(1)
2016/12/02 Javascript
Vue resource中的GET与POST请求的实例代码
2017/07/21 Javascript
Windows安装Node.js报错:2503、2502的解决方法
2017/10/25 Javascript
vue根据值给予不同class的实例
2018/09/29 Javascript
JavaScript封闭函数及常用内置对象示例
2019/05/13 Javascript
layui清除radio的选中状态实例
2019/11/14 Javascript
vue+iview框架实现左侧动态菜单功能的示例代码
2020/07/23 Javascript
Nuxt pages下不同的页面对应layout下的页面布局操作
2020/11/05 Javascript
Python最长公共子串算法实例
2015/03/07 Python
浅谈Python中copy()方法的使用
2015/05/21 Python
python多线程方式执行多个bat代码
2016/06/07 Python
python最长回文串算法
2018/06/04 Python
用Python爬取QQ音乐评论并制成词云图的实例
2019/08/24 Python
使用virtualenv创建Python环境及PyQT5环境配置的方法
2019/09/10 Python
利用python Selenium实现自动登陆京东签到领金币功能
2019/10/31 Python
python实现简单贪吃蛇游戏
2020/09/29 Python
会走动的图形html5时钟示例
2014/04/27 HTML / CSS
Html5应用程序缓存(Cache manifest)
2018/06/04 HTML / CSS
老同学聚会感言
2014/02/23 职场文书
大学生职业生涯规划大赛作品(精品)
2014/09/17 职场文书
入党积极分子党支部意见
2015/06/02 职场文书
会计实训总结范文
2015/08/03 职场文书
三好学生评选事迹材料(2016精选版)
2016/02/25 职场文书
详解RedisTemplate下Redis分布式锁引发的系列问题
2021/04/27 Redis