【问题标题】:Checking a specific uri in the current url - Jquery检查当前 url 中的特定 uri - Jquery
【发布时间】:2013-01-07 14:04:07
【问题描述】:

我正在尝试检查当前网址是否

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 编码的,这将不起作用。有没有办法在不检查所有条件(split('&')split('%26'))的情况下检查url是否包含name=value

【问题讨论】:

    标签: javascript jquery url uri


    【解决方案1】:

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

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

    【讨论】:

    • 这不是 JQuery 的一部分,它是本机浏览器 javascript 的一部分。
    【解决方案2】:

    您可以为此使用核心 javascript:

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

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

    How can I get query string values? 是您正在寻找的东西。

    【讨论】:

      猜你喜欢
      • 2017-07-06
      • 2012-10-04
      • 2011-10-19
      • 2012-11-12
      • 2023-03-16
      • 2023-03-22
      • 2012-06-02
      • 2023-01-16
      • 1970-01-01
      相关资源
      最近更新 更多