jQuery:向URL散列写入和读取参数的轻量级方式

jQuery: lightweight way to write and read parameters to URL hash?

本文关键字:读取 参数 方式 轻量级 URL jQuery      更新时间:2023-09-26

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

例如,我希望能够读取像index.html#color=red&day=monday这样的URL并获得{ color: 'red', day: 'monday' }

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

有人知道轻量级插件可以做到这一点吗?或者我需要自己写吗?

很明显,BBQ做了所有这些,还有更多,但我不需要所有的历史管理,我不愿意包含很多我不需要的代码。

这将起作用,您可以将其放在函数中或直接使用它:

  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];
    }

purl可以读取片段参数:

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

要编写它们,您可以使用jquery的$.param()助手。这是一个小提琴

不确定是否有轻量级插件,但您可以使用类似的东西

    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在需要时更改该数据