2017-02-22 3 views
0

Попытка динамического вытягивания элементов HTML из шаблона на сайте. {{SCHEMA - Recipe Image}} и {{SCHEMA - Recipe Description}} работают неправильно. {{SCHEMA - Recipe Image}} ссылается на правильный раздел, но возвращает null (Значение, указанное для image.url, должно быть допустимым URL) в Инструменте тестирования структурированных данных Google.
{{SCHEMA - Recipe Description}}, которая работала, когда я создал статьи схему, по какой-то причине не работает на этом типе схемы и дает мне ошибкуВставка JSON через Диспетчер тегов Google

в строке 9, символ 5: Ошибка синтаксического анализа. '}' Ожидается

ошибка.
Может ли кто-нибудь помочь мне понять, почему URL-адрес и описание изображения не вытягиваются правильно?

<script> 
    (function(){ 
var data = { 
    "@context": "http://schema.org", 
    "@type": "Recipe", 
    "author": "Example", 
    "cookTime": "PT1H", 
    "description": "Generic description goes here.", 
    "image": { 
     "@type": "ImageObject", 
     "url": {{SCHEMA - Recipe Image}} 
    }, 
    "recipeIngredient": [ 
     {{SCHEMA - Recipe Ingredient}} 
    ], 
"name": {{SCHEMA - Recipe Title}}, 
"prepTime": "PT15M", 
"recipeInstructions": {{SCHEMA - Recipe Steps}} 
} 

var script = document.createElement('script'); 
script.type = "application/ld+json"; 
script.innerHTML = JSON.stringify(data); 
document.getElementsByTagName('head')[0].appendChild(script); 
})(document); 
</script> 
+0

Описание исправлено, по-прежнему не удается вытащить URL изображения, хотя через переменную я использую неправильный код? – MattSmiles

ответ

0

Мог ли я увидеть ваш код для пользовательской переменной {{ SCHEMA - Recipe Image }}? Моя первая мысль заключается в том, что вы неправильно выбрали значение атрибута src для изображения, но я не могу знать, если не вижу этот код. Кроме того, полезно использовать HTML-код, который вы хотите выбрать.

Подобно тому, как ссылки, это то, как я успешно реализован пользовательскую переменную для изображения:

function(){ 
var image = document.querySelector(".slide-2 a").getAttribute('href'); 
return image; 
} 

Заметим, что это выбрать атрибут ссылки, оберточная изображение href, и вы может потребоваться выбрать атрибут src изображения, в зависимости от вашей структуры HTML.

Одна из возможностей заключается в том, что вы забываете «вернуть» изображение, как только вы его выбрали, так что дайте ему также чек.

Вам может понадобиться, чтобы сделать что-то ближе к этому:

function(){ 
    var image = document.querySelector("img").getAttribute('src'); 
    return image; 
    } 

Другой возможный ответ: я недавно внедренная это на месте шахты, и у меня был структурированных данных инструмента тестирования Google показывают пользовательскую переменную как нуль случайным образом, но не все время. Я бы обновил инструмент тестирования, и в итоге он будет отображаться правильно, поэтому я не ставил бы 100% доверие к этому инструменту, так как это может быть ошибкой. Дайте ему обновить и посмотрите, поможет ли это.

Единственный способ узнать, действительно ли заполняются поля, - открыть инструменты разработчика Chrome на вкладке «Элементы», нажать «Control - F» и «Schema» найти ваш объект JSON, который был вставлен GTM , и посмотрите, действительно ли поле "url": заполнено URL-адресом.

Итак, если это не решит ваши проблемы, предоставьте мне дополнительную информацию, и я был бы рад еще раз взглянуть!

Смежные вопросы