jQuery:向 URL 哈希写入和读取参数的轻量级方法?

发布于 2024-12-29 18:28:08 字数 403 浏览 1 评论 0原文

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

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

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

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

显然 BBQ 可以做到所有这些以及更多,但我不需要所有这些历史管理,我不愿意包含很多我不需要的代码。

I'm using jQuery and I'd like a lightweight plugin to write and read hash parameters from a URL.

For example, I'd like to be able to read a URL like index.html#color=red&day=monday and get { color: 'red', day: 'monday' }.

I'd also like to be able to write parameters to the hash, checking for the presence of a variable, and adding or updating it as appropriate.

Does anyone know a lightweight plugin that can do this, or do I need to write my own?

Obviously BBQ does all of this and much more, but I don't need all the history management, and I'm loath to include a lot of code I don't need.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

夏日浅笑〃 2025-01-05 18:28:08

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

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

this will work, you can put it in a function or use it straight forwardly:

  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];
    }
有深☉意 2025-01-05 18:28:08

purl 可以读取片段参数:

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

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

purl can read fragment params:

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

To write them you can use jquery's $.param() helper. Here's a fiddle

半衾梦 2025-01-05 18:28:08

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

    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 来根据需要更改它

Not sure of a plugin that is lightweight, but you could use something like

    var hashdata = new Object();

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

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

   });

Which if i'm correct should return an object of the hash data in the url. Then knowing the current hash data, you could use window.location.hash to change that as and when you want

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文