`
zhanglu0223
  • 浏览: 22798 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

JS获取URL中GET的参数

 
阅读更多

对于 URL,我们需要了解更多,因为我们的开发中可能会需要提取URL的部分信息来做不同的事情,事实上这也是与后端交互的一种独特的方式,当然这肯定是安全的,当请求被返回,关于 url 的信息就被记录在了 Window 对象的 Location对象中,取值的结果并不随着用户手动修改地址栏中的字符而发生任何改变,这一点是很重要的。了解了这些内容,那么我们从下面这张图开始吧:

图片中间那一行较长的字符串是一个完整的 URL,它包含了一个 URL 中可能包含的任何部分:协议、域名、端口号(当然,大多数情况下,我们在浏览网页的时候并没有看到端口号,因为他被隐藏了,默认就是80端口,你加上也不会有错)、路径、参数、描点。在 JavaScript 中,获取到这一行字符串的方法是访问 window.location.href,href属性包含了一个页面完整的 URL。如果想得到 URL 中某一部分的值,我们可以通过复杂、繁琐的正则表达式来解析这个完整的 URL,不过更方便的办法是通过 location 的其他属性来获取。比如 location 的 protocol 属性中记录了带冒号的协议名,pathname 属性存储着路径名,这些属性是 href 的分离,给开发者带来了很多方便。下面的表格中罗列了 location 下所有的属性,以及他们各自记录的值。如果不能理解表格中的内容,那么上面那张图中的色块和文字,形象地描述了各属性在 URL 中对应的位置。

属性 值
href 完整的 URL
protocol 协议
hostname 主机名
host 主机名加端口号
port 的端口号
pathname 当前 URL 的路径部分
search URL 的查询部分
hash #开始的锚

值得注意的是,上面的属性都是可选的,这表示我们可以通过 JavaScript 改变他们的值。这些属性大都一目了然非常简单,唯有 search 部分是比较麻烦的,search部分是以 GET 方式传给后台的参数,以 ? 开始,& 作为分隔符,= 赋值的序列化的字符串,如此一来通过 location.search 得到的值往往并不是想要得到的最终结果,通过 search 的结构来分析,我们可能更想要得到的结果是一个包含明确对应关系的关联数组。于是我们需要对 location.search 中得到的字符串进行进一步的处理。

  1. functiongetArgs(){
  2. varargs={};
  3. varquery=location.search.substring(1);
  4. //Getquerystring
  5. varpairs=query.split("&");
  6. //Breakatampersand
  7. for(vari=0;i<pairs.length;i++){
  8. varpos=pairs[i].indexOf('=');
  9. //Lookfor"name=value"
  10. if(pos==-1)continue;
  11. //Ifnotfound,skip
  12. varargname=pairs[i].substring(0,pos);//Extractthename
  13. varvalue=pairs[i].substring(pos+1);//Extractthevalue
  14. value=decodeURIComponent(value);//Decodeit,ifneeded
  15. args[argname]=value;
  16. //Storeasaproperty
  17. }
  18. returnargs;//Returntheobject
  19. }

上面的代码来自于《JavaScript 权威指南》一书中。getArgs 方法不接收参数,它主动提取 URL 中的 search 部分加以解析,并返回一个 JSON。例如我们最开始那张图片中的 URL ,使用 getArgs 方法将会得到下面的结果:

  1. varsearch={
  2. search:html
  3. }

这样,关于 URL 的所有信息都能得到一个非常明确的结果,很简单。

不过更推荐使用正则表达式来解析URL,其运行效率更高,代码也更加简洁。

  1. functiongetArgs(){
  2. varargs={};
  3. varmatch=null;
  4. varsearch=decodeURIComponent(location.search.substring(1));
  5. varreg=/(?:([^&amp;]+)=([^&amp;]+))/g;
  6. while((match=reg.exec(search))!==null){
  7. args[match[1]]=match[2];
  8. }
  9. returnargs;
  10. }.

转载地址:http://jsann.com/post/JS_GET_parameters_to_obtain.html

分享到:
评论

相关推荐

    js获取url参数.rar url参数获取

    在JavaScript编程中,获取URL参数是一项常见的任务,特别是在构建动态Web应用时。URL(Uniform Resource Locator)是网页的地址,而URL参数则是附加在URL后面,用于传递额外信息的键值对。这些参数通常以问号(?)...

    php获取URL中带#号等特殊符号参数的解决方法

    然而,URL参数中可能包含特殊字符,如井号(#)和其它符号,它们在URL中扮演特定的角色,可能导致无法直接获取预期的参数值。本篇知识点将详细探讨如何在PHP中获取带有特殊符号,如井号(#)的URL参数,并介绍如何使用...

    javascript获取url上的参数.rar

    在JavaScript编程中,获取URL上的参数是一项常见的任务,特别是在构建Web应用程序时。这些参数通常以键值对的形式出现在URL查询字符串中,形如 "?key1=value1&key2=value2"。本教程将深入探讨如何使用JavaScript有效...

    js获取url参数

    通过上述分析,我们不仅理解了如何使用JavaScript来获取URL中的参数,还深入探讨了正则表达式的构建以及如何优化代码结构。在实际开发中,掌握这些技巧将有助于我们更高效地解决问题,并提高代码的可维护性和可读性...

    jquery获取URL中参数解决中文乱码问题的两种方法

    为了解决这个问题,我们可以采取一些方法,特别是当使用jQuery来获取URL参数时,有以下两种方法特别有效。 方法一是利用正则表达式来匹配和解析URL参数,这是一种相对直接且有效的方式。具体实现步骤如下: 1. ...

    jquery_query_js获取url参数

    这里的`$.query.get("Id")`方法是用来获取URL查询字符串中名为"Id"的参数值。假设当前URL是`http://example.com/?Id=12345`,那么`id`变量将被赋值为"12345"。 jQuery Query Object提供了以下几种操作URL参数的方法...

    js获取url中携带的参数

    在JavaScript编程中,获取URL中携带的参数是一项常见的任务,特别是在构建动态Web应用程序时。URL(统一资源定位符)中的参数通常以键值对的形式出现,例如`example.com/?name=John&age=30`。这些参数可以用于传递...

    js获取地址栏参数

    JavaScript作为一种广泛应用于Web前端开发的语言,提供了多种方式来获取URL中的参数。本文将详细介绍如何使用JavaScript来获取上一个页面传过来的URL地址栏参数,并对给出的代码进行解析与优化。 #### 二、基础知识...

    html页面动态获取连接参数 jquery.params.js

    总结,`jquery.params.js`扩展使得在HTML页面中动态获取、修改和操作URL参数变得简单。通过引入这个文件并利用`$.query`方法,我们可以方便地处理页面间的数据传递,提高页面的交互性。在实际开发中,这种功能常用于...

    JS获取url参数详细

    在JavaScript中,获取URL参数是常见的需求...总结,JavaScript获取URL参数主要有字符串分割和正则表达式两种方法,每种方法都有其适用场景。理解并熟练运用这些技巧,能够帮助开发者更好地处理网页动态交互和数据获取。

    js获取中文地址栏参数

    本文详细介绍了如何通过JavaScript获取URL中的中文参数,并解决了可能存在的乱码问题。通过对上述知识点的学习,开发者可以更好地理解和掌握这一重要的前端技能。需要注意的是,在实际开发过程中,应尽量采用标准的...

    JS 获取静态页面的参数

    以下是一个简单的示例,展示了如何使用JavaScript获取URL参数: ```javascript function getQueryParams(url) { var queryParams = {}; var parser = document.createElement('a'); parser.href = url || window...

    封装了跟后台接口沟通的ajax,还有一个获取url传递get参数的两个公共函数

    封装了跟后台接口沟通的ajax,还有一个获取url传递get参数的两个公共函数,自己用来跟C#后台接口沟通的前端封装类,有类似需求的可以看看

    jQuery封装的获取Url中的Get参数示例

    此时可以使用js的方式得到当前页面的url中的get参数. 核心语句是: [removed].href 详细代码不解释了,有注释,你看了就懂.封装成jQuery扩展包. 代码如下: (function($){ $.extend({ /** * url get parameters * @...

    javaScript获取浏览器参数

    ### JavaScript 获取浏览器参数知识点...通过上述介绍,我们可以看到JavaScript获取浏览器参数不仅是一项基础技能,而且在实际项目开发中有着广泛的应用。熟练掌握这一技能对于提升Web应用的功能性和用户体验至关重要。

    JSP中js传递和解析URL参数以及中文转码和解码问题

    1.传递参数: 代码如下: var pmt = ‘sensor=’+ encodeURI(encodeURI(sensor))+’&device=’+encodeURI(encodeURI(device))+’&instrument=’;...接收和解析参数 代码如下: //获取URL参数 function GetRequest()

    js代码-获取 url 中的参数 1. 指定参数名称,返回该参数的值 或者 空字符串 2. 不指定参数名称,返回全部的参数对象 或者 {} 3. 如果存在多个同名参数,则返回数组

    在JavaScript编程中,获取URL中的参数是一项常见的任务,特别是在处理动态网页和API交互时。这里我们将深入探讨如何通过JavaScript来实现这一功能,并根据提供的标题和描述进行详细解释。 首先,让我们了解一下URL...

    javascript 获取url参数的正则表达式(用来获取某个参数值)

    现在,让我们看一个JavaScript函数,它使用了上述正则表达式来获取URL中的参数值: ```javascript String.prototype.getQueryString = function(name) { var reg = new RegExp("(^|&|\\?)"+ name +"=([^&]*)(&|$)...

    js中获取URL参数的共用方法getRequest()方法实例详解

    在JavaScript(JS)中,获取URL参数是一项常见的任务,它涉及到解析URL字符串并提取其中的键值对。这里我们将深入探讨如何使用自定义函数`getRequest()`来实现这一功能,并比较另一种常用的获取URL参数的方法。 ...

    jQuery 获取URL的GET参数值的小例子

    标题中提到的“jQuery 获取URL的GET参数值的小例子”,内容涉及了一个名为$.urlGet的自定义函数,该函数可以获取当前URL中包含的所有GET参数,并将其以键值对的形式存储在数组中返回。这个例子的描述部分说明了其...

Global site tag (gtag.js) - Google Analytics