0

我正在尝试检查当前 url

base_url/index.php?name0=value0&name1=value1&name2=value2...

包含特定的name=value. 我试过这个

var path = $.inArray('name=value', $(location).attr('href').split('&'));
        if (path  > -1){ triggers my function...}

但我想如果 url 是 url 编码的,这将不起作用。有没有办法在name=value不检查所有条件的情况下检查url(split('&')是否包含split('%26'))

4

2 回答 2

1

您可以为此使用核心 javascript:

var parameterName = 'name0';
var parameterValue = 'value0';
var path = decodeURI(location.href).indexOf(parameterName+'='+parameterValue); 
if (path > -1){ 
    triggers my function...
}

编辑:我已经对其进行了更多测试,但两种解决方案都不是完美的:当您在指定名称值之前有某些东西时,我的失败,例如:varname0当您检查name0时会找到并且不正确时,您的(和 monshq 的)不检查字符后面的第一个值/对?

如何获取查询字符串值?是你正在寻找的东西。

于 2013-01-23T22:58:08.157 回答
1

拆分将始终有效,因为&如果拆分参数,则部分 url 未编码。但是,您可以在 url 中编码名称或值。要搜索它们,您应该encodeURI这样使用:

var path = $.inArray(encodeURI('name=value'), $(location).attr('href').split('&'));
    if (path  > -1){ triggers my function...}
于 2013-01-23T22:58:39.403 回答