如何解决单击指向外部站点的链接时,如何将当前 url 参数添加到 <a> 的 href
我们使用 instapage 作为登陆页面的工具,如果用户点击带有外部链接的标签,它们会从链接中删除 url 参数。不过我想保留 location.search。
我在这里尝试使用这个脚本,但它根本不起作用 - 因为参数仍然会被删除,除非它们在 href 链接中指定。
window.addEventListener("click",function(e) {
var href = e.target.getAttribute("href");
if(href) {
location.href = href + window.location.search;
e.preventDefault();
}
});
我在这里遗漏了什么明显的东西吗?
解决方法
我通过在页面加载时修改 hrefs 而不是尝试添加 onClick 参数解决了这个问题。这是代码 - 也尊重已经包含参数的网址。
document.addEventListener("DOMContentLoaded",function(event) {
document.querySelectorAll('[href^="http"]').forEach((element) => {
var hrefString = element.getAttribute('href')
if(hrefString.includes('?')) {
element.setAttribute('href',hrefString + window.location.search.replace('?','&') )
} else {
element.setAttribute('href',hrefString + window.location.search)
}
})
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。