JavaScript不刷新查找当前网址上的querystring并修改查询字符串变量


发布者 ourjs  发布时间 1544853102332
关键字 JS学习  JavaScript 
经常有些场景需要从网址获取变量,比如:

http://ourjs.com?param1=test1&param2=test2

需要获取 param1/ param2 的变量,有时侯需要修改某个变量,有非常多的JS库可以实现,其实用简单的几行代码即可实现:


var qs = {}

qs.get = function(name) {
  var reg = new RegExp("[?&#]" + name + "=[^$&]*");
  var parameter = location.href.match(reg)
  if (!parameter) {
    return;
  } 

  return decodeURIComponent(parameter[0].substr(name.length + 2));
}

qs.set = function(name, value) {
  var reg = new RegExp("([?&#]" + name + "=)[^$&]*")
  var url = location.href
  var parameter = url.match(reg)
  if (parameter) {
    url = url.replace(reg, '$1' + value)
  } else {
    var first = url.indexOf('#') > 0 ? '' : '#'
    url += (url.indexOf('=') > 0 ? '&' : first) + name + '=' + value
  }

  history.replaceState && history.replaceState(null, null, url)
}

$.qs = qs;

使用:

qs.get('param1')
> test1

qs.set('param1', 'newvalue')
# 当前网址更新为:  http://ourjs.com?param1=newvalue&param2=test2








 热门文章 - 分享最多
  1. redis5.x新特性,Stream流数据类型使用简单教程
  2. JavaScript使用类似break机制中断forEach循环
  3. JavaScript如何快速高性能清空删除Array数组中的所有元素,并保持引用
  4. C语言用指针模拟按引用传递int整型参数
  5. Redis只往zset有序集合添加不存在的数据:关键字索引查询构建+源码分析
  6. bootstrap-datetimepicker时间日期范围选取组件使用说明及简单教程
  7. 用JavaScript往select元素中添加new option下拉选项
  8. 用jQuery将JavaScript对象转换为querystring查询字符串
  9. JavaScript无引用复制一个Array数组的每一个元素到另一个数组

 相关阅读
  1. JavaScript如何快速高性能清空删除Array数组中的所有元素,并保持引用
  2. JavaScript使用类似break机制中断forEach循环
  3. JavaScript无引用复制一个Array数组的每一个元素到另一个数组
  4. 用jQuery将JavaScript对象转换为querystring查询字符串
  5. 用JavaScript往select元素中添加new option下拉选项
  6. bootstrap-datetimepicker时间日期范围选取组件使用说明及简单教程
  7. 用JavaScript实现basename获取路径中的文件名
  8. 用JavaScript测试图像上两点之间的距离
  9. JavaScript运算出现很多小数导致运算不精确的问题,用toFixed解决
  10. 使用Node.JS批量查找替换目录下文本文件中图片地址内容

  开源的 OurJS
OurJS开源博客已经迁移到 OnceOA 平台。

  关注我们
扫一扫即可关注我们:
OnceJS

OnceOA