2012-02-29 106 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]; 
    } 

}