Zajmuję się tworzeniem strony internetowej i chcę dodać dane strukturalne do szczegółowych stron. Problem polega na tym, że muszę poprosić o dane, zanim będę wiedział, co dodać do skryptu JSON-LD.Jak dodać dane strukturalne przy użyciu JSON-LD na stronach dynamicznych, które muszą czekać na załadowanie zawartości?
Używam Parse jako zaplecza. Próbowałem również rozejrzeć się za tutorialami, jak to osiągnąć, ale nie można dynamicznie dodawać JSON-LD.
Mam nadzieję, że ktoś mi w tym pomoże! :)
EDIT:
Odpowiedź z danymi muszę umieścić w JSON-LD przychodzi po DOM jest gotowy. Jaki jest wzór w takich sytuacjach?
Mam listę przedmiotów i po kliknięciu na jedną z nich muszę otworzyć stronę szczegółów, którą muszę najpierw załadować, ale po załadowaniu zawartości chcę udostępnić dane strukturalne za pośrednictwem JSON-LD.
Jestem na początku i ciężko mi to rozwiązuje.
EDIT 2:
To moja faktyczna realizacja:
W HTML:
<body>
// my html page code
...
<script type="text/javascript">
loadDetailPageContent();
</script>
</body>
W JS:
function loadDetailPageContent() {
// Calling the method here is too early because I don't have info
//writeData();
createDetailPage();
}
function createDetailPage() {
var recipe = Parse.Object.extend("Recipe");
var query = new Parse.Query(recipe);
query.equalTo("objectId", myId);
query.first({
success: function(result) {
// Calling the method here would be perfect
writeData();
},
error: function(error) {
alert("Error: " + error.code + " " + error.message);
}
});
}
function writeData() {
var script = document.createElement('script');
script.type = 'application/ld+json';
script.text = JSON.stringify({
"@context": "http://schema.org",
"@type": "Recipe",
"name": "My recipe name"
});
document.querySelector('head').appendChild(el);
}
Jak widać Metoda writeData() jest wywoływana w dwóch miejscach. Jeśli zadzwonię do niego od razu, nie ma problemu, a dzięki narzędziu do testowania danych strukturalnych Google mogę śledzić potrzebne dane strukturalne. Problem polega na tym, że w tym momencie nie mam informacji do tworzenia danych strukturalnych, ponieważ muszę czekać na odpowiedź z Parse.
Kiedy jestem wywołanie metody wywołania zwrotnego w sukces, to narzędzie do testowania nie jest w stanie odzyskać dane już :(
Można utworzyć skrypt, który tworzy JSON-LD dynamicznie, Google danych strukturalnych parser - http://stackoverflow.com/questions/27169085/javascript-inside-ld-json – Mousey
Hej Mousey, dziękuję, znalazłam Odpowiedź, którą podłączyłeś, polega na tym, że muszę poczekać na odpowiedź z żądania przed utworzeniem JSON-LD. Jeśli dodaję kod do pliku js w pliku js, dane strukturalne nie istnieją – AlexBalo
wystarczy użyć 'window.onload' lub' $ (document) .ready() ', aby poczekać, aż DOM będzie gotowy , umieść część tworzącą JSON-LD wewnątrz tego http://stackoverflow.com/questions/799981/document-ready-equivalent-without-jquery – Mousey