2012-02-29 109 views
10

我似乎无法找到关于getParameterByName()的任何详细文档。我搜索了Mozilla,Google和这里。我错过了什么吗?关于getParameterByName的Javascript文档?

+4

你在哪里找到这样的方法?它应该做什么? – 2012-02-29 15:18:21

+0

这是一个函数,我读错了。我试图看看如何从查询字符串收集信息。 – Dandy 2012-02-29 15:22:00

+0

您的意思是否'getElementsByTagName'或者一个DOMElement方法'getAttribute' – silly 2012-02-29 15:18:49

回答

5

这个名字没有内建函数。

看看How can I get query string values in JavaScript?虽然 - 也许这是你正在寻找的功能。它返回给定名称的查询字符串参数。

+0

哇...这是我期待获得更多信息。我只是读错了。感谢您的快速回复! – Dandy 2012-02-29 15:18:43

0

因为它不存在。我想你想看看:getElementsByTagName?如果不提供更多关于你搜索什么样的方法的信息

9

我们在这里工作。类似ThiefMaster的解决方案...

function getParameterByName(name){ 
    name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); 
    var regexS = "[\\?&]"+name+"=([^&#]*)"; 
    var regex = new RegExp(regexS); 
    var results = regex.exec(window.location.href); 
    if(results == null) 
    return ""; 
    else 
    return decodeURIComponent(results[1].replace(/\+/g, " ")); 
} 
+1

大声笑 - 正在研究遗传代码,发现这个功能并正在搜索它是什么......追溯到你。所以这里是你的代表点:-) – jmadsen 2013-10-01 02:06:12

2

您需要添加名称的验证不为空/未定义

function getParameterByName(name) { 
    if (name !== "" && name !== null && name != undefined) { 
     name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); 
     var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), 
      results = regex.exec(location.search); 
     return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); 
    } else { 
     var arr = location.href.split("/"); 
     return arr[arr.length - 1]; 
    } 

}