如何在跟踪链接时保留URL查询参数
How to keep URL query parameters when following a link?
这是login.html:
的代码<ul>
<li class="introduction">
<a href="introduction.html">
<span class="icon"></span>
Introduction
</a>
</li>
<li class="login active">
<a href="#">
<span class="login"></span>
Login
</a>
</li>
</ul>
外部链接将首先带一些查询参数到当前页面(登录),我想保留。如果用户单击第一个链接introduction
,则会加载introduction.html。但是,前一页(登录)的查询参数全部丢失。
无论如何我可以做这个页面加载,同时保持查询参数?使用HTML或Javascript。
许多谢谢。您感兴趣的URL部分称为搜索。
您可以使用
链接到具有相同参数的另一个页面<a onclick="window.location='someotherpage'+window.location.search;">Login</a>
通过<a>
标签(使用jQuery)的rel=""
属性自动将当前参数附加到您认为有价值的任何链接:
<a href="introduction.html" rel="keep-params">Link</a>
// all <a> tags containing a certain rel=""
$("a[rel~='keep-params']").click(function(e) {
e.preventDefault();
var params = window.location.search,
dest = $(this).attr('href') + params;
// in my experience, a short timeout has helped overcome browser bugs
window.setTimeout(function() {
window.location.href = dest;
}, 100);
});
修改客户端所有a
标签以包含查询参数
[...document.querySelectorAll('a')].forEach(e=>{
//add window url params to to the href's params
const url = new URL(e.href)
for (let [k,v] of new URLSearchParams(window.location.search).entries()){
url.searchParams.set(k,v)
}
e.href = url.toString();
})
注意:如果你在这个脚本运行后以编程方式添加一个新的a
标签,它将不会更新它,所以它不会为SPA工作,例如
相关文章:
- 获取/保留上一页's具有SmoothState的URL
- 如何在从剃刀视图移动内联JavaScript时保留相对URL
- php get_contents-保留源文件的原始url
- 更改URL并保留“更改”事件下拉列表中的值
- 如果可能的话,刷新后保留iframe url
- 通过 CAS 登录保留 URL 片段
- 缩短 URL 以保留开头和结尾(Firebug “Net” 面板样式)
- 使用 $location 手动更改 URL 时保留上一页
- 传递url时保留原始反斜杠的问题
- goBack按钮,同时使用react路由器保留url状态
- 防止浏览器在重新加载父级时保留iframe url
- 如何在使用 GET 方法发送 url 时保留文本区域输入中的文本段落
- 如何执行Javascript重定向url与保留url参数
- 先前的状态视图不会保留在带有自定义模态url的打开UI引导模态的后台
- 在访问Angular 2应用的路由时,如何在URL中保留查询字符串参数
- 使用jQuery筛选复选框-保留URL中的选择
- 删除url的部分,只保留文件名
- 如何在跟踪链接时保留URL查询参数
- 当我推送一个新的URL到主干.历史记录,查询参数保留
- UI路由器:在$stateChangeError之后保留url(解析依赖项时)