2010-08-27 111 views
0

我有一個圖形庫,我用它來繪製一些數據。在JS中獲取URL參數並嵌入JS函數

該數據來自如在以下格式的URL GET paramater通過:plottedgraph.html?case_id=4&otherparam=blabla

然後,我有我的HTML網頁,我試圖抓住,與GUP功能(如下圖)GET PARAM並將其添加到我的JS功能如下:"http://www.url.com/showgraph.do?case_id=" + gup('case_id') + "&status=weighted"

這是整個HTML

<html> 
<head> 
    <!--[if IE]> 
     <script type="text/javascript" src="js/excanvas.js"></script> 
    <![endif]--> 
    <script type="text/javascript" src="js/dygraph-combined.js"></script> 

    <script type="javascript"> 
    function gup(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 results[1]; 
    } 
    </script> 

</head> 
<body> 
<div id="graphdiv2" style="width:1800; height:900px;"></div> 
<script type="text/javascript"> 
    g2 = new Dygraph(
    document.getElementById("graphdiv2"), 
    "http://www.url.com/showgraph.do?case_id=" + gup('case_id') + "&status=weighted", // path to CSV file 
    { 
     showRoller: true, 
     colors: ["rgb(255,100,100)", 
       "rgb(72,61,139)"] 
    }   // options 
); 
</script> 
</body> 
</html> 

不幸的是,JS的功能不承認CASE_ID = 4在這種情況下...

請讓我知道我做錯了什麼?

+0

[JavaScript query string](http://stackoverflow.com/questions/647259/javascript-query-string) – 2010-08-27 09:24:46

回答

2

這是一個有點難以調試你GUP()函數,你可以嘗試:

var params={}; 
document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g, function() { 
    function decode(s) { 
     return decodeURIComponent(s.split("+").join(" ")); 
    } 
    params[decode(arguments[1])] = decode(arguments[2]); 
}); 

現在,您可以找到params對象的參數,所以PARAMS [「CASE_ID」]將持有你的價值正在尋找。

+0

謝謝!這一個工作完美! – 2010-08-27 09:58:45