2017-08-04 3 views
0

コードインジェクションを挿入して私の四角形のウェブサイトのリンクを変更しようとしています。要素が定義されていないようhref属性を変更するにはsquarespaceにJavaScriptコードインジェクションを追加するには?

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

しかし、これは動作しません:私は、次のコードを追加しています。 document.getElementsByClassName呼び出しは、編集したい要素を含む長さ1のリストを返しますが、抽出しようとすると定義されません。

私は次のコードを実行すると:それは次のように生成

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

screenshot of console

+0

は、リンクがDOMである前に、あなたが試みることができると、文書が 'window.load =関数にあなたのコードをラップすることによって準備されるのを待つの音(){/ * code here * /}; ' – keja

+0

これを試しましたが、このようなコードは一切実行されません – Ben

+0

HTMLとCSSを追加できますか? – styfle

答えて

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>

関連する問題