javascript 获取url中的参数

2023-05-16

方法封装

function getAllUrlParams(url) {
    // get query string from url (optional) or window
    var queryString = url ? url.split('?')[1] : window.location.search.slice(1);
    // we'll store the parameters here
    var obj = {};
    // if query string exists
    if (queryString) {
        // stuff after # is not part of query string, so get rid of it
        queryString = queryString.split('#')[0];
        // split our query string into its component parts
        var arr = queryString.split('&');
        for (var i = 0; i < arr.length; i++) {
            // separate the keys and the values
            var a = arr[i].split('=');
            // set parameter name and value (use 'true' if empty)
            var paramName = a[0];
            var paramValue = typeof (a[1]) === 'undefined' ? true : a[1];
            // (optional) keep case consistent
            paramName = paramName.toLowerCase();
            if (typeof paramValue === 'string') paramValue = paramValue.toLowerCase();
            // if the paramName ends with square brackets, e.g. colors[] or colors[2]
            if (paramName.match(/\[(\d+)?\]$/)) {
                // create key if it doesn't exist
                var key = paramName.replace(/\[(\d+)?\]/, '');
                if (!obj[key]) obj[key] = [];
                // if it's an indexed array e.g. colors[2]
                if (paramName.match(/\[\d+\]$/)) {
                    // get the index value and add the entry at the appropriate position
                    var index = /\[(\d+)\]/.exec(paramName)[1];
                    obj[key][index] = paramValue;
                } else {
                    // otherwise add the value to the end of the array
                    obj[key].push(paramValue);
                }
            } else {
                // we're dealing with a string
                if (!obj[paramName]) {
                    // if it doesn't exist, create property
                    obj[paramName] = paramValue;
                } else if (obj[paramName] && typeof obj[paramName] === 'string'){
                    // if property does exist and it's a string, convert it to an array
                    obj[paramName] = [obj[paramName]];
                    obj[paramName].push(paramValue);
                } else {
                    // otherwise add the property
                    obj[paramName].push(paramValue);
                }
            }
        }
    }
    return obj;
}

使用方法

url:cl.html?id=2&name=hello

var params = getAllUrlParams();
        alert("id:"+params.id+"  name:"+ params.name);

参考

https://www.sitepoint.com/get-url-parameters-with-javascript/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

javascript 获取url中的参数 的相关文章

  • 热成像调色板

    自热成像早期以来 红外热像仪经常使用独特的调色板 从黑色到蓝色 品红色 橙色 黄色到亮白色 这个调色板通常被称为Iron or Ironbow 这是使用前视红外相机拍摄的图像的典型假彩色可视化 来源 维基百科 术语科特 http commo
  • 如何从 github 安装需要构建步骤的 npm 包,例如什么时候分叉一个库?

    假设您使用类似的库vue3 datepicker https www npmjs com package vue3 datepicker 您意识到您需要自定义某些内容 并且作为第一步 您想要使用它的自定义分支 问题是 当包被推送到 npm
  • 在 vuejs 上将 \n 替换为新行

    我正在尝试将 n 字符替换为来自端点的数据的新行 I tried p item licensedocument legal documentText replace r n r n g br p 并没有奏效 当我将replace 写入问题末
  • Nightmare.js 截图缓冲区长度 0

    我正在运行一个 night js 脚本 我试图在其中截取页面上多个元素的屏幕截图 The first元素被捕获得很好 但折叠下方的所有其他元素都以零长度捕获 我正在努力调试这个问题 任何帮助将非常感激 基本上这个脚本会遍历一个页面并选择al
  • 动画和过渡的组合无法正常工作

    我一直在尝试添加一些基本的 CSS3 动画 目标是在按钮的单击事件上切换类 并根据添加的类对 div 进行动画处理 该代码对于 Firefox 中切换的第一次迭代完美运行 但对于 Chrome 等其他浏览器以及 Firefox 中的下一次迭
  • 为什么此 Firebase 可调用函数不返回值?

    我有一个应返回值的可调用函数 但唯一返回的是 null 以下是该功能的当前版本 我也尝试过回报第一个承诺 原来的once调用 最后在另一个then返回 GUID 在这种情况下它实际上返回了数据 但它立即返回并且 GUID 为空 我怎样才能实
  • 如何将 iLike 运算符与 Sequelize 结合使用来进行不区分大小写的查询

    我使用 Sequelize 和 PostgreSQL 来管理我的数据库 我想执行不区分大小写的搜索查询 当我用谷歌搜索时 有人说我可以使用 iLike 运算符来做到这一点 我尝试以这种方式实现 var getRadiosByGenre fu
  • Xml、xsl Javascript 排序

    我正在寻找一种使用 javascript 对 xml 数据进行排序的方法 并希望最终过滤掉数据 我知道这一切都可以在 xsl 文件中实现 但我想在客户端进行 我已经搜索了多个使用 javascript 进行排序的地方 但其中大部分要么太特定
  • 移动设备上的剩余悬停效果

    我一整天都在努力做这个JSFiddle http jsfiddle net gsamaras q2w4jjyt 4 也适用于手机 但我所有的尝试都没有效果 在桌面上 当用户将鼠标悬停在箭头上时 它会变成红色 在移动设备上 当用户触摸 为了单
  • Vue: vue-i18n: 无法翻译 keypath 的值,使用 keypath 的值作为默认值

    我正在使用 Vue 我想展示三种语言 英语 他加禄语和宿务语 现在我有错误 无法转换键路径 NavbarMobile home 的值 使用 keypath 的值作为默认值 我通过 console log this i18n locale 检
  • Safari 和 Edge 中的 audioContext.copyToChannel() 替代方案

    Safari 和 Edge 都不支持audioContext copyToChannel 函数用自定义内容填充audioBuffer 还有其他方法吗 就我而言 我想创建一个脉冲响应 用该响应填充缓冲区 并将一些声音与该缓冲区进行卷积 对于
  • 如何使用 jQuery 显示“忙”指示器?

    如何在网页中的特定点显示旋转的 忙 指示器 我想在 Ajax 请求开始 完成时启动 停止指示器 这真的只是显示 隐藏 gif 动画的问题 还是有更优雅的解决方案 您可以只显示 隐藏 gif 但您也可以将其嵌入到 ajaxSetup 中 以便
  • 谷歌colab录音,如何实现更精确的方式告诉用户开始对着麦克风说话

    我正在尝试创建一个为机器学习项目录制音频的程序 我想使用 google colab 这样人们就不必在他们的系统上安装或运行任何东西 我在网上找到了这个录制和播放音频的示例 单元格 1 包含用于录制音频的 js 代码和用于将其转换为字节对象的
  • 如何将多个画布元素放入一个画布元素中?

    我有多个由 JavaScript 创建的画布元素 我的问题是 如何将多个画布元素放入一个画布元素 干得好 JSfiddle http jsfiddle net Allendar UqxCY 它会抓取每个画布并将它们做成 PNG 的 访问缓冲
  • 如何用 GreaseMonkey 替换 onclick 事件?

    该网站有一个图片库 每次我单击缩略图时 它都会在新选项卡中打开 URL 不是因为我将 Firefox 设置为在新选项卡中打开链接 我只想在同一窗口中打开 URL 缩略图的示例如下 span class thumb a href post i
  • Web 文本编辑器中的 RTF 格式

    网络上是否有支持 RTF 格式文档输入的文本编辑器 我知道这对 webdev 来说有点奇怪 但我需要从数据库中读取 RTF 文档 并在基于 Web 的文本编辑器中对其进行编辑 然后将其存储回 RTF 中 在我在转换工具上投入太多资金之前 我
  • 为什么间接更改复选框时不会触发复选框上的 onchange

    我使用 Prototype 来监视复选框 因此我可以向它们添加 javascript 检查 当单击复选框所在的 tr 或 td 时 应选中该复选框 当您直接单击复选框时 会触发 onchange 事件 因此您会收到警报 当 javascri
  • 如何比较 JavaScript 表格中的单元格并测试是否相等? indexOf 是如何工作的?

    我在 HTML 代码中创建了一个表格 它有 9 列和 13 行 它被 JavaScript 循环完全填满 该循环用几个数组中的人名填充它 但是 我想添加一个验证步骤 确保一行中没有两个单元格具有相同的值 并且每个单元格的值不会在其正下方的单
  • Tizen SDK:找不到变量:tizen

    我正在尝试使用 Tizen SDK 创建一个 Web 应用程序 当我启动应用程序时 一切都很好 但是当我在模拟器上按 后退 按钮时 没有任何反应 并且我看到一条消息 55435 js main js 9 ReferenceError 找不到
  • 构造函数可以返回什么值来避免返回 this ?

    确切的情况是什么 returnJavascript 中的语句可以返回除this当使用构造函数调用时new关键词 Example function Foo return something var foo new Foo 如果我没记错的话 如

随机推荐

  • windows安装nginx并设置开机自启动

    在macOS和linux中使用nginx我早已经轻车熟路 突然切到windows的环境中 xff0c 我反而不会用了 之前写了 windows使用nginx探索笔记 内容比较冗长 xff0c 所以本文尽量精简一下 环境 操作系统 xff1a
  • windows redis安装与开机自启动

    Redis 在 Windows 上不受官方支持 但是 xff0c 您可以按照以下说明在 Windows 上安装 Redis 进行开发 要在 Windows 上安装 Redis xff0c 您首先需要启用WSL2 xff08 适用于 Linu
  • windows11中hosts配置

    windows11中hosts配置 打开配置路径 win 43 r打开运行 xff0c 在运行中输入drivers双击etc目录就打开如下路径 xff1a 实际上也可以在运行中直接输入C Windows System32 drivers e
  • Windows Server 2019安装SQL Server 2014

    最近要部署一个项目 xff0c 需要用到SQL Server 2014 我把安装过程简单记录一下 xff0c 给有需要的朋友吧 下载安装包 在国内微软的官网下载速度还是比较慢的 xff0c 我是从 https msdn itellyou c
  • spring boot项目windows开机自启动

    windows服务器的运维的过程中 xff0c 很难避免服务器重启 如果每次服务器重启以后都要人工启动服务 xff0c 就太麻烦了 web 后端如果能开机自动启动 可以节省不少运维成本 相关阅读 windows安装nginx并设置开机自启动
  • 交行对账接口100.100.100.X访问超时解决办法

    今天维护一个老的项目 xff0c 一个老的项目已经稳定运行近1年了 最近突然出现故障了 windows服务器 xff0c 中间为了排除问题 xff0c 重启了一下服务器 毕竟windows服务器 xff0c 有时重启包治百病 各种问题都成功
  • PhpStudy集成环境,让天下没有难配的服务器环境

    简介 让天下没有难配的服务器环境 xff0c 解放运维 PhpStudy国内12年老牌公益软件 xff0c 集安全 xff0c 高效 xff0c 功能与一体 xff0c 已获得全球用户认可安装 xff0c 运维也高效 支持一键LAMP LN
  • windows安装mysql client 命令行客户端

    我在macOS和linux中 xff0c 有一些操作比较喜欢直接使用mysql 命令行程序完成 切到windows中反而不知道如何安装mysql client了 相关阅读 macOS 安装mysql client命令行工具 https bl
  • Error creating bean with name ‘BAdminMapper‘ defined in file [C:\Users\ASUS\Desktop\FleakMarket-mast

    项目最初是可正常运行的 xff0c 我只是把一些 java文件放到 xff08 就是直接用鼠标拖动文件 xff09 其他包下 xff0c 然后出现下面这个对话框 Refactor后 xff0c 当我重新Run Application 时 x
  • 查找(一):简单符号表

    1 1 符号表 符号表主要运用于键值对 xff08 key value xff09 的操作 用例能够将一个键值对插入符号表 xff0c 并希望在以后能够从符号表中按照键 key 找到相应的值 value 符号表从某种意义上与数组类似 xff
  • 微信支付配置信息如何获取

    微信支付需要配置各种key 密钥什么的 这样配置应该在哪获取 xff0c 刚接触的时候还挺懵的 因为我也没有找到相关介绍的文章 xff0c 我自己就在这么多菜单中一个个翻找 xff0c 终于凑齐了 就像集齐龙珠一样 于是我就整理一下留给需要
  • 微信公众号管理后台获取已关注的openid

    最近在调试微信支付功能 xff0c 创建新的订单时有个参数openid xff0c 我如果随便写就会返回一个错误appid和openid不匹配 因为我仅仅是为了测试微信支付的接口 xff0c 如何简单方便的获取测试用户的openid呢 xf
  • windows server 2016免驱网卡驱动

    普通的windows10免驱usb网卡 放到windows server 2016上就没有用了 产品型号 这里并不是广告 xff0c 以下产品亲测可用的 xff0c 其他usb无线网卡不太清楚 87 CZ0001 2 x1f5dd yiyk
  • GnuPG-2.1 与 pacman 密钥环

    我的archlinux有2周没有更新了 xff0c 今天更新老是报以下错误 xff1a 错误 xff1a dmenu 来自 34 T J Townsend lt blakkheim 64 archlinux org gt 34 的签名是勉强
  • Windows Terminal绿色版本

    Windows Terminal在线安装非常简单 如果电脑没法上网如果离线安装呢 xff1f 步骤 要求 xff1a Windows 10 1903版本及以上 到https github com microsoft terminal rel
  • ubuntu systemctl管理

    启动服务状态 systemctl start nginx service 查询服务状态 systemctl status nginx service 开机启动 systemctl span class token builtin class
  • docker container 开机自动启动

    我在docker中安装了mysql与redis 每次电脑重新后都要手动启动一下相应的docker容器 xff0c 感觉很不方便 能不能把docker容器设置成自动启动呢 xff1f 官方文档 官方有相关的文档 xff0c 大家可以自行看一下
  • Spring Boot 做成 archlinux service 开机自动启动

    archlinux与ubuntu操作方式基本相同 创建employee服务 span class token function sudo span span class token function vim span etc systemd
  • Nginx 服务器 SSL 证书安装部署配置https

    我使用的是腾讯的云服务器 xff0c 所以直接参考腾讯的官方文档很容易就实现了 详见文档 xff1a https cloud tencent com document product 400 35244 腾讯云服务器 步骤 申请证书 htt
  • javascript 获取url中的参数

    方法封装 span class token keyword function span span class token function getAllUrlParams span span class token punctuation