经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JSJS库框架 » JavaScript » 查看文章
js获取带#号链接后的参数
来源:cnblogs  作者:韦文俊  时间:2018/9/25 20:08:43  对本文有异议

现在许多的主流网站都将'#'大规模用于重要URL中,我们通过正则表达式和window.location.search获取参数已经行不通了。

一.'#'号是什么

1.#代表网页中的一个位置。其后面的字符,就是该位置的标识符。

2.#是用来指导浏览器动作的,对服务器端完全无用。所以,HTTP请求中不包括#。

3.在第一个#后面出现的任何字符,都会被浏览器解读为位置标识符。这意味着,这些字符都不会被发送到服务器端。

4.单单改变#后的部分,浏览器只会滚动到相应位置,不会重新加载网页。

5.每一次改变#后的部分,都会在浏览器的访问历史中增加一个记录,使用"后退"按钮,就可以回到上一个位置。

二.如何获取#号后的字符串

1.window.location.search:获取当前URL的'?'号开始的字符串

2.window.location.hash:获取当前URL的'#'后面的字符串

三.js代码

1.获取链接后的参数(不带#号)

  1. getQueryString(name) {
  2.    let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  3. let r = window.location.search.substr(1).match(reg);
  4. if (r != null) return decodeURIComponent(r[2]);
  5. return null;
  6. }

2.获取链接后的参数(带#号)

  1. getQueryString(name) {
  2. let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  3. if(window.location.hash.indexOf("?") < 0){
  4. return null;
  5. }
  6. let r = window.location.hash.split("?")[1].match(reg);   
  7. if (r != null) return decodeURIComponent(r[2]);
  8.    return null;
  9. }

 3.使用方法

  1. console.log('name is ',getQueryString('name'))

 

  1. 感谢您的阅读,如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮。本文欢迎各位转载,但是转载文章之后必须在文章页面中给出作者和原文连接
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号