Web前端不同页面间传值可以使用 cookies、localStorage 和 sessionStorage 等本地存储。

但是,今天我们尝试使用 url 查询,假设我们要传递字符串 str 到 modify.html 页面:

var str = "name=Bob Chen&gender=男&date=1998/04/26&idNumber=430523000000000000&telNumber=13400007511&email=2099367442@qq.com&city=北京";

1、使用encodeURIComponent编码:

location.href = "modify.html?" + encodeURIComponent(str);

url格式如下:

domain:port/path/modify.html?name%3DBob%20Li%26gender%3D%E7%94%B7%26date%3D1998%2F04%2F26%26idNumber%3D430523000000000008%26telNumber%3D13400007511%26email%3D2099367442%40qq.com%26city%3D%E5%8C%97%E4%BA%AC

2、使用encodeURI编码:

location.href = "modify.html?" + encodeURI(str);

url格式如下:

domain:port/path/modify.html?name=Bob%20Chen&gender=男&date=1998/04/26&idNumber=430523000000000000&telNumber=13400007511&email=2099367442@qq.com&city=北京

通过url查询传值后,接下来我们需要解析url,我们为 jQuery 对象添加新方法 parseUrl 来解析url查询:

(function($) {
$.parseUrl = function() {
var paramObj = {},
paramsArr = decodeURIComponent(location.href).split("?")[1].split("#")[0].replace(/\+/g, " ").split("&"),
i = 0, len = paramsArr.length;
for (; i < len; i++) {
var param = paramsArr[i].split("=")[0].trim(),
value = paramsArr[i].split("=")[1].trim();
if (param == "date") {
paramObj[param] = value.replace(/\//g, "-");
} else {
paramObj[param] = value;
}
}
return paramObj;
}
})(jQuery);

然后,我们就可以通过 paramObj 的属性来访问传递的数据了:

var paramObj = $.parseUrl();
console.log(paramObj['name']);

添加jQuery方法解析url查询部分的更多相关文章

  1. 黑马旅游网 解析url查询字符串

    function getUrlParam(name) { let reg = new RegExp("(^|&)" + name + "=([^&]*)( ...

  2. querystring 解析url 查询字符串

    对前端同学来说,经常要碰到一种比较麻烦的情况,那就是url查询字符串的解析问题.说起来也不难,就是比较麻烦. 具体来处理这种情况的时候,相信有一部分同学就是针对具体项目中的需要的字符去正则匹配一下,业 ...

  3. 解析URL查询字符串参数为对象以及老浏览器的getElementsByClassName

    高程3使用拼接字符串形式解析的查询字符串,网上有各种正则方式解析的,记得太多,临时需要写的时候,自己都搞混乱了.只记一种吧,用正则. function getQueryStringArgs() { v ...

  4. 函数parseQuery用于解析url查询参数

    在百度上找的,以后忘了再看. 语法如下: var obj = parseQuery(query) query是被解析的查询参数,函数返回解析后的对象. 使用范例如下: var jerry = pars ...

  5. 前端面试题整理——手写方法解析URL参数

    //拆分字符串形式 function queryToObj() { const res = {} const search = location.search.substr(1);//去掉前面的&qu ...

  6. Node基础:url查询参数解析之querystring

    模块概述 在nodejs中,提供了querystring这个模块,用来做url查询参数的解析,使用非常简单. 模块总共有四个方法,绝大部分时,我们只会用到 .parse(). .stringify() ...

  7. HTTP 请求方式: GET和POST的比较当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。

    什么是HTTP? 超文本传输协议(HyperText Transfer Protocol -- HTTP)是一个设计来使客户端和服务器顺利进行通讯的协议. HTTP在客户端和服务器之间以request ...

  8. jquery 中获取URL参数的方法

    今天写项目需要获取url后面的参数ref参数来判断是否开启计时器来刷新页面,之前一直都是用JS写的,今天在查资料的时候看到了一款JQ的插件 项目地址:https://github.com/allmar ...

  9. location对象的属性和方法应用(解析URL)

    本文将与大家分享下location对象使用属性和方法来解析URL的实例,感兴趣的朋友可以参考下,希望对你有所帮助   location对象提供了很多属性和方法用来解析URL. 复制代码代码如下: &l ...

随机推荐

  1. EF和linq to sql 关系

    LINQ to SQL 允许你用任何类来代表数据库中的数据.表.同样的,EF也允许你用任何类来代表苏据库中的数据.表. 所不同的的地方是Linq to sql 用这些被修饰过的类直接同数据库打交道,存 ...

  2. sping全家桶笔记

    1.curl 用于在终端命令模式下访问一个URL地址 例如在idea的Terminal中访问URL,健康检查(需要加入actuator依赖)curl http://localhost:8080/act ...

  3. poj 2253 Frogger 最小瓶颈路(变形的最小生成树 prim算法解决(需要很好的理解prim))

    传送门: http://poj.org/problem?id=2253 Frogger Time Limit: 1000MS   Memory Limit: 65536K Total Submissi ...

  4. Mvc+Hui+SqlSugar+Autofac+NLog+T4 架构设计(一)

    一.前言 作为小菜鸟第一次写博客的我还有点小激动,最近开始打算着手写一个属于自己架构.算下来差不多最近花一周多的下班时间了来写这个框架,本来想整体架构开发完成测试完成后才写博客,怕自己没时间或失去动力 ...

  5. PLSQL数据库无选项问题解决

    添加如下ORACLE_HOME和OCI library 添加之后,关闭plsql再打开会出现如下界面: 其中database为空. 我当时也是在环境变量里面配置了TNS_ADMIN的环境变量为:如下 ...

  6. 自己做的js甘特图插件

    版权所有,禁止转载 内容都在代码中,上图上代码! 代码 <!DOCTYPE html> <html> <head> <title>ganttu.html ...

  7. throws、throw和try catch

    在学习代理模式的时候,编写动态生成代理类.java文件时,用try{}catch(){}捕获异常发现catch(Exception e)报错,得换成catch(Throwable e),然后又查了查两 ...

  8. C++笔记020:const 和 #define 的对比

      原创笔记,转载请注明出处! 点击[关注],关注也是一种美德~ 第一,const与#define的相同点 C++中的const常量类似于宏定义 const  int  c = 5  ≍  #defi ...

  9. Python3中正则模块re.compile、re.match及re.search函数用法详解

    Python3中正则模块re.compile.re.match及re.search函数用法 re模块 re.compile.re.match. re.search 正则匹配的时候,第一个字符是 r,表 ...

  10. mac 装5.6版本mysql 设置密码

    最的mysql在装的时候就可以设置 ,但是低版本的好像不行,需要在装了以后才能设置. mac下,mysql5.7.18连接出错,错误信息为:Access denied for user 'root'@ ...