2017-12-07 2 views
0

Googleタグマネージャを使用して '記事' JSONマークアップを実装し、特定のページの要素を変更するためのいくつかの変数を返します。私が返そうとしている要素の1つはイメージsrcです。JSONの画像srcを返す可変エスケープ文字列

今私はCSSセレクタを使ってこれを返すDOM要素を使用しています。

<div class="field-item even"> 
<img src="THISISTHEIMAGEURL.jpg"> 
</div> 

と私は収集することにより、GTMに標的にしています:それは標的にされていることをHTML要素があるdiv.field-item.even> SRCの属性名を持つIMG This is a screenshot of how I'm targeting in GTM

右これをプレビューモードでテストすると、イメージのURLが正確に表示され、すべてが素晴らしいように見えます。

私は「悪いエスケープ文字列」というエラーとhttp://\www.mysite.com/ \ image1.jpg/\

のような両方の方法を行くスラッシュを持っている画像のURLを返していますGoogleの構造化データテストツールを使用してこれをチェック

私はいくつかの研究を行ってきましたが、この作業をするためにカスタムJavaScript変数などを使用する必要があるようです。

私はこのような何かを使用しようとしていた。

function() { 
var src = document.querySelector(‘.fielditem.even > img').src; 
} 

をその後私は、私は戻り値を必要とする私に言ってGTMにエラーが発生します。 Unfortanately、私のjavascriptのスキルはかなり貧弱であり、いくつかのより多くの研究の後、私はこのような何か試してみました:

var picture = document.getElementsByClassName(".fielditem.even"); 
var src = picture[0].firstElementChild.src; 

を私は戻り値を必要とすることを私はまだ、同じエラーを取得しています。どんな助けでも大歓迎です。

ありがとうございます!

答えて

0

-の両方の記号を忘れてしまった。代わりに

.field-item.even > img 

それが正常に動作下にスクリプトを実行すると

.fielditem.even > img 

正しいクラスを問い合わせます。

var image = document.querySelector('.field-item.even > img'); 
 
var src = image.src; 
 

 
console.log(src)
<div class="field-item even"> 
 
    <img src="https://resources.risingstack.com/risingstack-logo-2017.svg"> 
 
</div>

0

ちょうどあなたの関数から値を返す:

function imgSRC() { 
    return document.querySelector('.field-item.even > img').src; 
} 
+0

ありがとうございました!これはjavascript変数を使用して正しいイメージsrcを取り出しましたが、構造化されたデータツールで見ると「悪いエスケープ文字列」エラーが表示されます。 URLを取得し、スラッシュが回転していないことを確認する方法はありますか?これは、http:\/\/altoona.psu.edu \/sites \/default \/files \/styles \/feature_article_primary \/public \/white1に引っ張っているURL文字列を取得しています。 JPG?itok \ x3djc5Wri6Vこれは、コンソールモードではすべてが正しく表示されているため、構造化データテストツールの中にあるかもしれませんが、わかりませんでした。 – user2938427

関連する問題