JSON-LD в SDTT: неверная escape-последовательность в строке

Названия некоторых моих веб-страниц содержат следующий символ &, например «Доставка и доставка» и т. д.

Моя разметка Schema вводится с помощью GTM (JSON-LD), но в SDTT я получаю следующую ошибку:

Ошибки без категорий: 1 ОШИБКА
JSON-LD: Неверная управляющая последовательность в строке.

Я установил переменную в GTM, «Селектор CSS», нацеленную на «H1», которая в приведенном выше примере извлекает заголовок страницы «Функции и параметры».

Но в SDTT код выглядит следующим образом при тестировании через выборку URL:

"name": "ТЕГ ТЕМА: ОСОБЕННОСТИ \x26 ОПЦИИ"

Любая идея, как правильно избежать последовательности?


person KVNHNF    schedule 03.05.2017    source источник
comment
Вы пробовали encodeURIComponent() ?   -  person mrbubu    schedule 03.05.2017
comment
Спасибо за ваш ответ, mrbubu, это выходит за рамки моих нынешних ограниченных знаний... не знаю, что делать с этой информацией!   -  person KVNHNF    schedule 04.05.2017


Ответы (1)


Это больше похоже на обходной путь, чем на ответ, поскольку он не преобразует эти символы, но когда у меня возникла та же проблема, я просто использовал замену в пользовательской переменной, которую я использую в микроданных JSON-LD. Сделайте - для вашего случая - вместо использования переменной DOM - создайте пользовательскую переменную JavaScript:

function() {
   var h1 = document.querySelector('h1').innerText;
   var cleanh1 = h1.replace(/&/g, "and");
   return cleanh1;
}

Таким образом, ваш JSON-LD будет работать как шарм.

Если есть шанс, что в H1 innerText вернет & вместо просто & - можно добавить в замену:

var cleanh1 = h1.replace(/(&|&)/g, "and");

Надеюсь, это поможет.

person ePetkov    schedule 16.10.2017