Я разрабатываю веб-сайт и хочу добавить структурированные данные на подробные страницы. Проблема в том, что мне нужно запросить данные, прежде чем я знаю, что добавить в сценарий JSON-LD.
Я использую Parse как серверную часть. Я также попытался найти руководства о том, как этого добиться, но мне кажется, что динамическое добавление JSON-LD невозможно.
Я очень надеюсь, что кто-нибудь сможет мне с этим помочь! :)
РЕДАКТИРОВАТЬ:
Ответ с данными, которые мне нужно поместить в JSON-LD, приходит после того, как DOM будет готов. Какова закономерность в этой ситуации?
У меня есть список элементов, и при нажатии на один из них мне нужно открыть страницу с подробностями, которую я должен загрузить в первую очередь, но после загрузки контента я хочу предоставить структурированные данные через JSON-LD.
Я в самом начале, и мне трудно решить эту проблему.
ИЗМЕНИТЬ 2:
Это моя реальная реализация:
В HTML:
<body>
// my html page code
...
<script type="text/javascript">
loadDetailPageContent();
</script>
</body>
В 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);
}
Как видите, метод writeData () вызывается в двух местах. Если я вызову его сразу в начале, проблем не возникнет, и с помощью инструмента тестирования структурированных данных Google я смогу отслеживать нужные мне структурированные данные. Проблема в том, что в этот момент у меня нет информации для создания структурированных данных, потому что мне нужно дождаться ответа от Parse.
Когда я вызываю метод в обратном вызове успеха, инструмент тестирования больше не может извлекать данные :(
window.onload
или$(document).ready()
, чтобы дождаться готовности DOM, поместите часть, создающую JSON-LD, внутри этого stackoverflow.com/questions/799981/ - person Mousey   schedule 01.08.2015