我有一个图表库,用于绘制一些数据。
此数据作为GET参数在URL中传递,格式如下:plottedgraph.html?case_id=4&otherparam=blabla
然后我有我的HTML页面,我尝试使用GUP函数捕获该GET参数(如下所示)并将其添加到我的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 :(得分: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']将保存您正在寻找的值。