2016-11-02 3 views
1

Ich versuche, eine benutzerdefinierte GTM-JavaScript-Variable zu erstellen, die den Wert eines bestimmten breadcrumb-Links in der JSON-LD zurückgibt.Benutzerdefinierte GTM-Variable für Breadcrumbs

jedoch meine die Schleife ich nur geschrieben wird, um den ersten Wert zurück:

JavaScript (GTM Variable)

function() { 
    var bcLink = document.getElementsByClassName("bcLink"); 
    for (i=0; i<bcLink.length; i++) { 
     return bcLink[i].getAttribute("href"); 
    } 
} 

HTML

<ul class="breadcrumbs"> 
    <li><a class="bcLink" href="http://www.site1.com">Home</a></li> 
    <li><a class="bcLink" href="http://www.site2.com">Dumpsters</a></li> 
    <li><a class="bcLink" href="http://www.site3.com">State</a></li> 
    <li><a class="bcLink active" href="http://www.site4.com">City</a></li> 
</ul> 

Outputed JSON-LD

{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"http://www.site1.com","name":"Dumpsters"}},{"@type":"ListItem","position":2,"item":{"@id":"http://www.site1.com","name":"Dumpsters"}},{"@type":"ListItem","position":3,"item":{"@id":"http://www.site1.com","name":"Dumpsters"}},{"@type":"ListItem","position":4,"item":{"@id":"http://www.site1.com","name":"Dumpsters"}}]}} 

Sie, dass nur sehen kann "http://www.site1.com" als "@id" Irgendwelche Ideen

gedruckt werden?

Antwort

0

Die benutzerdefinierte JavaScript-Variable, die Sie eingerichtet haben, gibt nur den ersten Wert zurück.

Dies ist aufgrund der Return-Anweisung, sobald das Skript dies auswertet, wird es den aktuellen Wert zurückgeben, d. H. Index 0 und schließen Sie die Schleife. Daher wird nur immer der erste Index zurückgegeben.

Da Sie keine Werte in Custom JavasScript-Variablen übergeben können, müssen Sie ein formatiertes Objekt zur Verwendung zurückgeben.

function() { 
var bcLink = document.getElementsByClassName("bcLink"); 
var data = []; 
for (i=0; i<bcLink.length; i++) { 
// you will need to create/format the data suitable to your needs 
data.push({ 'url' : bcLink[i].getAttribute("href") }); 
} 
//return the data object to use elsewhere 
return data; 
} 
Verwandte Themen