将查询字符串传递给所有页面

时间:2020-11-06 19:02:15

标签: javascript query-string google-tag-manager

在这里我需要一点帮助。我是javascript的初学者,遇到了Google跟踪代码管理器中的某些代码,该代码旨在将查询字符串传递给所有页面。除了在网站的特定页面上之外,它运行良好。

在该页面上,我有一堆用户可以滚动的引号。每当有人单击按钮以阅读轮播上的下一个报价时,页面就会刷新(我们不想要)。

有人可以帮助我调整此代码,以便在该特定用例中不刷新页面吗?

我认为最大的问题是轮播使用<a> </a>标签包裹。

<script>
    for (var n = 0; n < document.getElementsByTagName('a').length; n++) {
        var link = document.getElementsByTagName('a')[n].href;
      if (link.includes('?')) {
        document.getElementsByTagName('a')[n].href = link.concat('&' + {{Query String}});
      }
      else {
        document.getElementsByTagName('a')[n].href = link.concat('?' + {{Query String}});
      }
    }
</script>

1 个答案:

答案 0 :(得分:0)

您可以使用querySelectorAll对带有href参数的链接进行排序。

qstring = "x=1";
links = document.querySelectorAll("a[href]");

links.forEach(function(el){
  var link = el.href;
  if (link.includes('?')) {
    el.href = link.concat('&' + qstring);
   } else if (link[0] != "#") { {
   el.href = link.concat('?' + qstring);
  }
});
<a href="https://test.com/?xx">Test.com</a>
<a href="https://test.com/">Test.com</a>
<a href="https://test.com">Test.com</a>
<a name="a">Test.com</a>

相关问题