原生JS去解析地址栏的链接?超好用的解决办法
在做SPA应用程序的时候,往往需要通过地址栏链接的 hash 值来进行业务逻辑:
<script type="text/javascript">
//file:///C:/Users/Administrator/Desktop/angularjs/domo/20.ng.html#baidu
console.log(window.location);
//结果
//Location {hash: "#baidu", search: "", pathname: "/C:/Users/Administrator/Desktop/angularjs/domo/20.ng.html", port: "", hostname: ""…}
</script>
当页面发生点击,请求发生hash值改变的情况:
<script type='text/javascript' >
(function(window){
window.addEventListener('hashchange',function(e){
//拿到地址栏的地址
console.log(window.location.href);
//拿到地址栏的hash值
console.log(window.location.hash);
var oHash = window.location.hash;
switch(oHash){
case '#/index/':
console.log('index');
case '#case':
console.log('case');
};
});
})(window);
</script>
通过 a 链接的方式通过解析地址栏的URL:
最快捷最方便的方式去解析一个 url 地址,是通过 a 标签的方式去解析
<script type="text/javascript">
/*可以通过 window.location 拿到所有URL的所有信息: -->
//https://www.baidu.com:8080/aaa/1.html?id=10#name
protocol: https
host: www.baidu.com:8080
port: 8080
pathname: /aaa/1.html
search: ?id=10
hash: #name*/
var url = "https://www.baidu.com:8080/aaa/1.html?id=10#name";
var aLink = document.createElement('a');
aLink.href = url;
//打印出一个标签<a href="https://www.baidu.com:8080/aaa/1.html?id=10#name"></a>
//使用json遍历(一定是大写的JSON)
//console.log(JSON.stringify({id:1,name:'张三',age:'18'}));
//打印出 {"id":1,"name":"张三","age":"18"}
//JSON 要求键一定是用双引号引起来,json就是一种用字符串描述对象的方式
console.log(aLink.hostname);
console.log(aLink.port);
console.log(aLink.pathname);
console.log(aLink.search);
console.log(aLink.hash);
</script>
除了 a 标签的解析方法,还有字符串的方法,还有通过正则的方式去解析;
正则表达式:
http://tool.oschina.net/regex
原生JS去解析地址栏的链接?超好用的解决办法的更多相关文章
- Error LNK2001 无法解析的外部符号 的几种情况及解决办法
最近遇到的关于VS里编译出现的“无法解析的外部符号”问题,在网上寻求解决办=办法时查到下面的博客内容,作者讲解的挺全面的,作为收藏以备将来查询. 原文http://blog.csdn.net/shen ...
- Sqlserver通过链接服务器访问Oracle的解决办法
转自http://blog.sina.com.cn/s/blog_614b6f210100t80r.html 一.创建sqlserver链接服务(sqlserver链接oracle) 首先sqlse ...
- 【转】Sqlserver通过链接服务器访问Oracle的解决办法
一.创建sqlserver链接服务(sqlserver链接oracle) 首先sqlserver 链接oracle可以通过两个访问接口: “MSDAORA” 和“OraOLEDB.Oracle” 1 ...
- js的倒计时在ie下显示NAN的最佳解决办法
写了一个倒计时,原代码如下: var times = new Date(); var timesout = new Date("2016-6-7"); var timesg = t ...
- 可以Ping通和DNS解析,但打不开网页的解决办法
一. 网络故障表现为: 1.Ping地址正常,能ping通任何本来就可以ping通地址,如网关.域名. 2.能DNS解析域名. 3.无法打开网页,感觉是网页打开的一瞬间就显示无网络连接. 4.只需要连 ...
- MD5:js,java,C#三种语言加密结果不同解决办法
最近遇到前端js MD5加密与后端C#与Java MD5加密结果不一致的问题,所以写个关于此问题的解决办法 前端js引用的md5类库,类库地址:https://blueimp.github.io/Ja ...
- 原生JS怎样给div添加链接
html: <div href="http://www.atigege.com" target="_blank">个人网站</div> ...
- wordpress修改固定链接及修改链接后链接提示404错误的解决办法
wordpress默认的url实在是不好看又不好记忆,而且还不利于SEO.因此,我就捣鼓着把url做一个自定义.自定义的方式如下: 建议使用/%postname%的形式,这样利于SEO. 修改之后,l ...
- js获取元素属性值为空的原因和解决办法
问题描述:js获取某元素的属性值为空 代码: <!-- css定义在head中 --> <style> #box{ width: 100px; height: 100px; b ...
随机推荐
- Struts2之Domain Model(域模型)。
使用原因 为了避免在action中有太多的类,而需要写大量的get().set(). 故在Struts2 使用 了 domain model. Action: private User user; p ...
- e581. Animating an Array of Images in an Application
This is the simplest application to animate an array of images. import java.awt.*; import javax.swin ...
- hunnu--11547--你的组合数学学得怎样?
你的组合数学学得怎样? Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:65536KB Total submit users: ...
- IFrame实现的无刷新(仿ajax效果)...
前台代码: <iframe style="display:none;" name="gg"></iframe> <form act ...
- Nginx的启动与停止,重启
1.先确定nginx所在的文件位置 如: 重启 1.验证nginx配置文件是否正确 方法一:进入nginx安装目录sbin下,输入命令./nginx -t 2.重启Nginx服务 方法一:进入ngin ...
- php如何解决多线程同时读写一个文件的问题
<?php header("content-type:text/html;charset=utf-8"); $fp = fopen("lock.txt", ...
- u3d性能优化
原文地址:http://blog.csdn.net/molti/article/details/8520418 性能优化需要从多方面入手,大家在项目中遇到的问题还是很普遍的,欢迎大家补充. 图形方面: ...
- NSArray打印汉字的方法
(1) NSArray打印汉字 通过重载NSArray的- (NSString *)descriptionWithLocale:(id)locale方法 方法体例如以下: //依据设置的locale ...
- 关于NaN(Not a Number)的问题
在游戏运行时,代码若写得不安全很容易出现NAN的异常.一旦NAN出现整个游戏不崩溃也坏死掉了,游戏上了则是要被直接打回来的节奏,更是一个开发及测试人员每人都要扣3000块的大BUG. 一般表现为: ...
- 在php代码中调用帝国cms头部变量temp.header的方法
在php代码中调用帝国cms头部变量temp.header的方法 代码如下: <?php require("../e/class/connect.php"); if(!def ...