首页 > 解决方案 > 如何为除社交链接之外的外部链接重定向页面

问题描述


我有一个 Blogger 博客,我想通过使用 JavaScript 为除内部链接和社交链接之外的所有链接制作重定向页面来跟踪外部链接。
我知道该怎么做:

window.onload = function(){
document.getElementById("aLinkId").addEventListener("click", function(e){
e.preventDefault();
// Here we redirect to the wanted page, with the extra parameter, with the original external URL
location.href = "REDIRECT-PAGE-URL?redirect=" + document.getElementById("aLinkId").href; 
}); };

但这在博客链接没有 id 中不起作用,我必须为每个链接添加它。
但是对于重定向页面,我被卡住了。

标签: javascripthttp-redirect

解决方案


您可以使用querySelectorAll获取所有链接,然后遍历每个链接并在它们上添加事件侦听器。这种方式不依赖于每个链接都具有唯一的 ID。

window.onload = function() {
  let links = document.querySelectorAll("a");
  for (var i = 0; i < links.length; i++) {
    links[i].addEventListener("click", function(e) {
      e.preventDefault();
      let href = this.href
      console.log(href);
      //location.href = "REDIRECT-PAGE-URL?redirect=" + href;
    });
  }
};
<a href="url1" target="blank">link1</a>
<a href="url2" target="blank">link2</a>
<a href="url3" target="blank">link3</a>
<a href="url4" target="blank">link4</a>


推荐阅读