export class Router {
ReplaceState(url, data) {
var query = this.Generate(data);
window.history.replaceState(url, "", query)
} /**
* 生成url
*/
Generate(data) {
var search = "?";
for (var temp in data) {
search += `${temp}=${data[temp]}&`;
}
search = search.substr(0, search.length - 1);
return search;
} /**
* 解析search
*/
UrlSearch(key) {
var search = window.location.search;
if (search) {
var searchObject = {};
var queries = search.replace(/^\?/, '').split('&');
for (var i = 0; i < queries.length; i++) {
var split = queries[i].split('=');
if (split[0] != "" && split[1] !== undefined) {
searchObject[split[0]] = decodeURIComponent(split[1]);
}
}
return searchObject[key];
} else {
return "";
}
} }

使用例子:

  添加:

    在window.location.href后加上a=1和b=2。

Router.prototype.ReplaceState(window.location.href, {a:1,b:2});

    修改之后将会变成xxxxxxxxxx?a=1&b=2。

  获取参数:

Router.prototype.UrlSearch("a");

用replaceState操作路由的方法封装的更多相关文章

  1. python3+Appium自动化07-滑动操作以及滑动方法封装

    滑动解析 滑动主要分为:水平滑动.垂直滑动.任意方向滑动 滑动轨迹 在Appium中模拟用户滑动操作需要使用swipe方法,该方法定义如下: def swipe(self, start_x, star ...

  2. 封装JDBC操作数据库的方法

    自己动手封装java操作数据库的方法: 一:目录结构 二:所需依赖的第三方jar包 这里只需引入mysql-connector-java-5.1.8-bin.jar,mysql数据库驱动jar包 三: ...

  3. 记录python接口自动化测试--把操作excel文件的方法封装起来(第五目)

    前面补充了如何来操作excel文件,这次把如何获取excel文件的sheet对象.行数.单元格数据的方法进行封装,方便后面调用 handle_excel.py# coding:utf-8 import ...

  4. selenium3 web自动化测试框架 二:页面基础操作、元素定位方法封装、页面操作方法封装

    学习目的: 掌握自动化框架中需要的一些基础web操作 正式步骤: 使用title_contains检查页面是否正确 # -*- coding:utf-8 -*- import time from se ...

  5. Vlan 间路由的方法

    vlan间路由的方法主要有三种 1.通过路由器上多个接口实现 2.通过路由器上一个接口即单臂路由实现 3.通过三层交换实现   下面将每一中实现方法配合实验说明     第一:通过路由器上多个接口实现 ...

  6. Redis操作Set工具类封装,Java Redis Set命令封装

    Redis操作Set工具类封装,Java Redis Set命令封装 >>>>>>>>>>>>>>>>& ...

  7. Redis操作List工具类封装,Java Redis List命令封装

    Redis操作List工具类封装,Java Redis List命令封装 >>>>>>>>>>>>>>>> ...

  8. Redis操作Hash工具类封装,Redis工具类封装

    Redis操作Hash工具类封装,Redis工具类封装 >>>>>>>>>>>>>>>>>> ...

  9. C#基础之操作字符串的方法

    C#基础之操作字符串的方法 C#中封装的对字符串操作的方法很多,下面将常见的几种方法进行总结: 首先定义一个字符串str 1.str.ToCharArray(),将字符串转换成字符数组 2.str.S ...

随机推荐

  1. 引用css样式的书写格式

    css的书写格式一共有三种 行内样式:意思是在行内中写样式 例如说<p style="color:red">用行内样式编写我的颜色</p> 只适用于< ...

  2. Associated Values & enum

    it is sometimes useful to be able to store associated values of other types alongside these case val ...

  3. 优动漫PAINT新建文件

    在优动漫PAINT软件中展开任何一项操作之前,都需要新建或打开图形文件.新建文件之后,用户可根据自己的需求进行相应的设置,这样将大大节省后期制作的时间! 在优动漫PAINT中新建图形文件的方法: 方法 ...

  4. 远程连接windows出现身份验证错误,提示"由于CredSSP加密Oracle修正"解决方案

    本机操作系统(OS版本:10.0.17134) 远程计算机操作系统(OS版本:6.3.9600) 远程连接的时候报错“出现身份验证错误,要求的函数不受支持.远程计算机:xxx 这可能是由于CredSS ...

  5. spring重点一:处理对象创建时间 个数以及方式

    /** * 1) 对象创建: 单例/多例(个数) * scope="singleton", 默认值, 即 默认是单例 [service/dao/工具类] *  scope=&quo ...

  6. Windows Server 2012安装.net framework3.5(转)

    1.先下载WIN2012R2安装NET3.5的专用数据源 https://pan.baidu.com/s/1bqiUTyR 提取码h09k 并解压,比如解压到桌面,解压后的路径为C:\Users\Ad ...

  7. 【udacity】机器学习

    Evernote Export 2.人工智能简介 机器学习源自于人工智能,在此方向上,该领域有分为不同学派,机器学习主要关注的是制造能够自主动作的机器 3.人工智能难题 1.所有智能体都只有很少的计算 ...

  8. 路飞学城Python-Day140

    Django思维导图

  9. python文件操作IO

    模式 描述 r 以只读方式打开文件.文件的指针将会放在文件的开头.这是默认模式. rb 以二进制格式打开一个文件用于只读.文件指针将会放在文件的开头.这是默认模式.一般用于非文本文件如图片等. r+ ...

  10. 取得Linux系统的各种统计信息

    本文基于Linux 2.6.x内核 一.取得CPU信息(相关文件/proc/stat) 在一个系统中的/proct/stat文件内容如下 $ cat /proc/stat cpu 1039426 17 ...