【问题标题】:How can I get URL parameter in a jquery ready function?如何在 jquery 就绪函数中获取 URL 参数?
【发布时间】:2011-04-07 21:35:54
【问题描述】:

我有以下几点:

$(document).ready(function() {
window.location.href='http://target.SchoolID/set?text=';
});

因此,如果有人使用以下网址访问带有上述代码的页面:

Somepage.php?id=abc123

我想让ready函数中的文本变量读取:abc123

有什么想法吗?

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    你不需要 jQuery。你可以用普通的 JS 来做到这一点

    function getParameterByName( name ) //courtesy Artem
    {
      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 decodeURIComponent(results[1].replace(/\+/g, " "));
    }
    

    然后你可以像这样得到查询字符串值:

    alert(getParameterByName('text'));

    也可以在这里寻找其他方式和插件:How can I get query string values in JavaScript?

    【讨论】:

    • 添加了另一个答案。如果你觉得它更新你的答案,我会删除我的。感谢您提供有用的代码。
    【解决方案2】:

    查看以下问题的答案: How can I get query string values in JavaScript?

    这将为您提供查询字符串中 id 参数的值。

    那么你可以这样做:

    $(document).ready(function() {
        var theId = getParameterByName( id)
        var newPath = 'http://target.SchoolID/set?text=' + theId
        window.location.href=newPath;
    });
    

    【讨论】:

      【解决方案3】:

      为了帮助那些想要拥有多个变量并增强 Moin 的答案的人,这里是多个变量的代码:

      function getParameterByName( name ) //courtesy Artem
      {
        name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
        var regexS = "[\\?&]"+name+"=([^&#]*)";
        var regex = new RegExp( regexS );
        var results = regex.exec( window.location.href );
        if( results == null )
          return "";
        else
        {
          if ((results[1].indexOf('?'))>0)
              return decodeURIComponent(results[1].substring(0,results[1].indexOf('?')).replace(/\+/g, " "));
          else
              return decodeURIComponent(results[1].replace(/\+/g, " "));
        }
      }
      

      【讨论】:

        猜你喜欢
        • 2011-09-05
        • 1970-01-01
        • 1970-01-01
        • 2017-09-18
        • 1970-01-01
        • 2016-11-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多