怎么用js跳转带有URL参数的页面

JavaScript010

怎么用js跳转带有URL参数的页面,第1张

window.open("url","","")第一个参数是url,第二个是控制你页面是打开新窗口还是在原来窗口打开,第三个参数是控制打开的窗口的大小,是否有地址栏等等等东西 如果你真想研究下HTML基础,建议下个DHTML帮助文档,里面不仅仅是HTML,还有各个文档对象的js方法属性和一些例子

我们在处理url的跳转时,往往会在url后面带着很多参数。有时候需要把这些参数转化成对象当作参数进行跳转或其他之用,比如angular2的 routerLink的地址是不带参数的,参数写在 queryParams里,这时候就需要对url进行处理。

当然可能还有其他地方可能会用到此类转换。

下面介绍对于url参数的几种转换方法

1.   js处理,利用split()和循环实现

结果 { a: 10 , b :2}

2.  利用querystring

     querystring是在node封装好的一个模块,有处理string的方法直接处理这种地址

这种方法可以直接进行处理

参考链接 Query String       querystring 模块的使用

3. 利用lodash处理

结果也是正确的。

不过lodash不会,所以把别人提供的方法放在这,再来在细细研究lodash

此方法已更新至文章  Lodash使用入门

参考链接   lodash文档

如下图,例如当传的值key等于0001时前面的0会被省略,到新的页面拿到key的值为1

因为js 喜欢将弱类型数据0002这样的string自己转成int.这个时候我们可以在0002前面拼接上任意一个数字,到了新页面以后在进行截取

var keys = '1'+key

subto(keys)

到了新页面以后

如下图,这里的firetaskid的值是个像abc这样的字符串,直接这样写的话会报错

查了一下是js转义的问题,如下图,转义一下就可以了

就像特殊字符需要转义一样,在利用url传递特殊字符时也有一个转义的过程

firetaskid = encodeURIComponent(firetaskid)

在这里我是用encodeURIComponent()这个函数解决的,encodeURIComponent()函数可把字符串作为 URI 组件进行编码。

该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。

其他字符(比如 :/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。

注意:encodeURIComponent()假定它的参数是 URI的一部分(比如协议、主机名、路径或查询字符串)。因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号.