2010-08-27 21 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