【问题标题】:How to get hashed value from URL如何从 URL 获取哈希值
【发布时间】:2015-10-17 17:23:12
【问题描述】:

如何将 url 中的散列值转换为单独的变量 url#value1=abc&value2=xyz&value3=123 像这样

var value1 = 'abc';
var value2 = 'xyz';
var value3 = 123;

如果 url 中不存在任何变量,则

var value4 = 0;

我使用window.location.hash 来获取所有散列值,但我如何将其分成单独的变量。

【问题讨论】:

    标签: jquery hash


    【解决方案1】:

    使用数组而不是单独的变量似乎是一个更好的选择。

    var hashValues = window.location.hash.substr(1).split("&");
    

    而你希望它们在变量中的 id,作为一个对象而不是泛滥全局范围可能会更好。

    var vals = { "value1" : 0 };
    for(var i=hashValues.length;i++) {
        vals["value"+i] = hashValues[i];
    }
    

    【讨论】:

      【解决方案2】:

      我发现JavaScript没有关联数组的概念,尽管我们可以通过创建一个对象来做到这一点。 通过这段代码我们可以将值以key和value的形式获取到对象中。

      var href = window.location.hash.substr(1);
      var hash = href.split("&");
      var scroll = new Object();
      for(key in hash){
          var arr = hash[key].split("=");
          scroll[arr[0]] = arr[1];
      }
      

      【讨论】:

        【解决方案3】:

        使用标签 (#) 获取价值:

        var hash = location.hash;
        

        在标签 (#) 之后获取值:

        var hash = location.hash.substr(1);
        

        从 href 中获取哈希值:

        this.hash; //  returns the hash value from href attributes of an anchor tag.
        

        例如:

        <a href="http://www.codexworld.com/index.php#VideoTutorial" onclick="alert(this.hash)">Get Hash</a>
        

        来源:CodexWorld

        【讨论】:

          【解决方案4】:

          使用.split():

          var hash = window.location.hash;
          var split = hash.split('&');
          var value1 = split[0];
          var value2 = split[1];
          var value3 = split[2];
          if(value1 == "" || value2 == "" || value3 == "") {
              var value = 0;
          }
          

          【讨论】:

            【解决方案5】:

            这应该可以解决 3 个参数的问题。

            var hash = this.hash.substr(1);
            
            if(hash == ""){
                var value4 = 0;
            }
            
            var value1Raw = hash.split('&')[0];
            var value2Raw = hash.split('&')[1];
            var value3Raw = hash.split('&')[2];
            
            var value1 = value1Raw.substring(7);
            var value2 = value2Raw.substring(7);
            var value3 = value3Raw.substring(7);
            

            【讨论】:

            • 对不起,我忘了提到 URL 中的值。我已经更新了我的问题,请再次查看。提前致谢。
            • 我们如何将apiscroll=4&amp;altscroll=3&amp;category=somecategory这样的字符串转换为具有hash[apiscroll] = 4; hash[altscroll] = 3; hash[category] = somecategory这样的键值对的关联数组
            猜你喜欢
            • 2012-10-31
            • 1970-01-01
            • 2011-04-20
            • 2010-12-19
            • 2011-08-10
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-07-22
            相关资源
            最近更新 更多