jQuery:轻量级的方式来写入和读取参数到URL哈希?

时间:2012-01-31 12:01:22

标签: javascript jquery url jquery-plugins

我正在使用jQuery,我想要一个轻量级插件来编写和读取URL中的哈希参数。

例如,我希望能够阅读index.html#color=red&day=monday之类的网址并获取{ color: 'red', day: 'monday' }

我还希望能够将参数写入散列,检查变量的存在,并根据需要添加或更新它。

有没有人知道轻量级插件可以做到这一点,还是我需要自己编写?

显然BBQ完成所有这些以及更多,但我不需要所有历史记录管理,而且我不愿意包含许多我不需要的代码。

3 个答案:

答案 0 :(得分:3)

这将起作用,你可以把它放在一个函数中或直接使用它:

  var hash = top.location.hash.replace('#', '');
    var params = hash.split('&');
    var result = {};
    for(var i = 0; i < params.length; i++){
       var propval = params[i].split('=');
       result[propval[0]] = propval[1];
    }

答案 1 :(得分:2)

purl可以读取片段参数:

$.url("index.html#color=red&day=monday").fparam("color"); // returns "red"

要编写它们,您可以使用jquery的$.param()帮助程序。这是一个fiddle

答案 2 :(得分:1)

不确定轻量级的插件,但您可以使用类似

的插件
    var hashdata = new Object();

    jQuery.each(window.location.hash.replace(/^#/,'').split('&'), function(i,t){

       var s = t.split('=');
       hashdata[s[0]] = s[1];

   });

如果我正确的话,应该在url中返回哈希数据的对象。然后知道当前的哈希数据,您可以使用window.location.hash来根据需要更改