1

我知道 GET 变量和 javascript 有很多问题,但我不理解或让它们工作。

我有一个 html 公式,我需要用 get 变量的值填充一个字段。url 有 2 个变量,这里是一个例子:

?pid=form.html&id=9869118

这个页面只是一个html,所以我不能使用php,但我想(首先)提醒一下id的值。

我在这里和谷歌尝试了很多不同版本的解决方案。

(例如: http ://www.onlineaspect.com/2009/06/10/reading-get-variables-with-javascript/

请帮助我了解它是如何正确完成并保存的!请注意,我也没有 jquery。

这是我到目前为止所尝试的。这是在<script>我的 form.html 中的标签内

var GETDATA = new Array();
var sGet = window.location.search;
if (sGet)
{
    sGet = sGet.substr(1);
    var sNVPairs = sGet.split("&");
    for (var i = 0; i < sNVPairs.length; i++)
    {
        var sNV = sNVPairs[i].split("=");
        var sName = sNV[0];
        var sValue = sNV[1];
        GETDATA[sName] = sValue;
    }
}
if (GETDATA["id"] != undefined) {
    document.forms.otayhteytta.id.value = GETDATA["id"];
    }
4

3 回答 3

3

看看这个优秀的 javascript url 操作库:

http://code.google.com/p/jsuri/

你可以做这样的事情:

按名称获取查询参数值

返回键的第一个查询参数值

new Uri('?cat=1&amp;cat=2&amp;cat=3').getQueryParamValue('cat')   // 1

返回所有查询参数值 key

new Uri('?cat=1&amp;cat=2&amp;cat=3').getQueryParamValues('cat')  // [1, 2, 3]
于 2013-05-22T07:46:05.793 回答
1

您可以像这样使用纯 JavaScript 函数:

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

然后你可以像这样提醒'id'的值:

alert(getParameterByName('id'));

您可以使用简单的“if”条件检查参数是否存在:

var id = getParameterByName('id');
if (id != "") {
    alert(id);
}

资料来源:如何在 JavaScript 中获取查询字符串值?

于 2013-05-22T07:47:34.807 回答
0

无需使用库即可获取 GET 参数的简单方法:

var parameters = []
var parts = location.search.substr(1).split('&')

for(var part in parts) {
   var splitted = parts[part].split('=')
   parameters[splitted[0]] = splitted[1]
}

现在parameters是一个数组,其中参数名称在键中,值作为值。

这是一个简单的解决方案,可能不适用于所有场景。

于 2013-05-22T08:12:33.680 回答