2016-07-18 5 views
0

Ich habe einige jQuery-Code, der ein Array namens myList[] erstellt. Dieses Array erscheint in der Konsole wie folgt: ["2 items", "3items", "so on"], also geht dieser Teil gut.Anwendung/ld + JSON und Javascript Datenaustausch

<script type="text/javascript"> 
var myList = []; 
function buld myList(){ 
... 
} 

muss ich myList[] auf die application/ld+json wie

<script type="application/ld+json"> 
{ 
    "@context": "http://schema.org/", 
    "@type": "Recipe", 
    "recipeIngredients": myList, //this one doesn't work 
} 

..

Wie kann ich die Werte von JavaScript zum application/ld+json passieren passieren? Danke im Voraus!

+0

Wenn Sie wirklich 'ld + json' Markup auf Ihrer Seite platzieren möchten, tun Sie es auf der Serverseite. Google liest die auf der Clientseite erstellte Maske nicht. –

+0

@AlexKudryashev Ja Google erkennen Client-Seite erstellt Markups: D –

+0

@IsmailRBOUH Können Sie einen Prooflink geben? –

Antwort

3

Bitte versuchen Sie dies:

<script id="myJSONID" type="application/ld+json"></script> 

Dann:

var myList = []; 

function buildMyList() { 
    return ["2 items", "3items", "so on"]; 
} 

$("#myJSONID").text(function() { 
    return JSON.stringify({ 
     "@context": "http://schema.org/", 
     "@type": "Recipe", 
     "recipeIngredient": buildMyList() 
    }); 
}); 

Oder:

<script type="text/javascript"> 
    var myList = [];  
    function buildMyList() { 
     return ["2 items", "3items", "so on"]; 
    } 

    var el = document.createElement('script'); 
    el.type = 'application/ld+json'; 

    el.text = JSON.stringify({ 
     "@context": "http://schema.org/", 
     "@type": "Recipe", 
     "recipeIngredient": buildMyList() 
    }); 

    document.querySelector('body').appendChild(el); 
</script> 

Demo:https://jsfiddle.net/iRbouh/9po7dtg4/

Hinweis: Bitte stellen Sie sicher, dass Sie recipeIngredients zu recipeIngredient, singular ändern. (Danke @ AlexKudryashev).

+0

Er, vielen Dank für den Vorschlag! aber es funktioniert nicht ... –

+0

Ich habe die Frage ein bisschen bearbeitet, um ein bisschen mehr vom Code zu zeigen ... –

+0

Bitte überprüfen Sie die aktualisierte Antwort! –