如何在 squarespace 上添加 JavaScript 代码注入以更改 href 属性?

How to add JavaScript code injection on squarespace to change href attribute?

我正在尝试通过插入代码注入来更改我的 squarespace 网站上的 link。我正在添加以下代码:

<script>
  var element = document.getElementsByClassName('eventitem-backlink')[0];
  element.setAttribute('href', '/archive/2017');
</script>

但是,这不起作用,因为元素未定义。 document.getElementsByClassName 调用 returns 长度为 1 的列表,其中包含我要编辑的元素,但是当我尝试提取它时,它是未定义的。

当我运行以下代码时:

 console.log(document.getElementsByClassName('eventitem-backlink'));
 console.log(document.getElementsByClassName('eventitem-backlink')[0]);

它产生以下内容:

您在此过程中调用函数的时间过早。尝试:

<script>
  (function() {

    function fn() {
      var element = document.getElementsByClassName('eventitem-backlink')[0];

      if (element) {
        console.log('element found');  
        element.setAttribute('href', '/archive/2017');
      } else {
        console.log('element not found yet');    
        setTimeout(fn, 200);
      }
    }

    fn();
  })();
</script>