gpt4 book ai didi

javascript - 将 URL 参数从一个页面传递到另一页面

转载 作者:行者123 更新时间:2023-12-03 03:30:52 26 4
gpt4 key购买 nike

所以我在页面上有一个显示分页结果的过滤器表单。目前,当您使用获取请求应用过滤器设置时,一切正常,但当您尝试切换页面时,它会重置。我曾想过使用如下脚本将 URL 从一个页面传递到另一个页面。这会复制 url,但实际上不会更改页面,只是复制字符串。您可以在下面的网址中看到,该网址确实更改了页面,但无论网址如何,实际网页仍保留在第一页上。我正在使用 Django 和 Django 过滤器。也许有更好的 jQuery 解决方案,有什么建议吗?

脚本

document.querySelectorAll('.fqs')
.forEach((el) => el.attributes.href.value += window.location.search);

网址

没有脚本:

/relations/?createdBy=&occursIn=&createdAfter=&createdBefore=&terminal_nodes=&project=1

使用脚本:

/relations/?page=2?createdBy=&occursIn=&createdAfter=&createdBefore=&terminal_nodes=&project=1

下一页链接

<a class="fqs" href="?page={{ relations.next_page_number }}">Next &raquo;</a>

按上一个按钮时的网址

?page=1&page=2&createdBy=&occursIn=&createdAfter=&createdBefore=&terminal_nodes=&project=1

最佳答案

如果我理解正确,您将添加分页服务器端 ?page={{...}} 并通过 js 添加现有的 url 参数。

生成的网址中有两个 ?,这可能就是链接无法为您提供正确页面的原因。

location.search 包含 ?,因此要将其添加到您的 ?page=x 中,您必须将 ? 替换为 &:

document.querySelectorAll('.fqs')
.forEach((el) => el.attributes.href.value += window.location.search.replace("?", "&"));

编辑:如果这有效,它可能会停止在下一页上工作,因为 location.search 将包含 page=x 给出重复的页面查询参数。

要从 location.search 中过滤掉页面参数,您可以执行以下操作:

document.querySelectorAll('.fqs')
.forEach((el) => {
var params = window.location.search.replace("?", "&").split("&");
params = params.filter((v) => v.indexOf("page") == -1).join("&");
el.attributes.href.value += params;
});

顺便说一句,请注意,箭头功能在 IE11 等旧版浏览器中不起作用。

关于javascript - 将 URL 参数从一个页面传递到另一页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46105961/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com