Вставить переменную из jQuery в разметку схемы JSON - PullRequest
1 голос
/ 04 ноября 2019

Я пытаюсь получить мета-описание и скопировать его содержимое в некоторую разметку схемы JSON. Но я не уверен, как заставить это передать переменную в структуру JSON правильно.

Вот то, что я думал:

<script>
      const desc = $('meta[name=description]').attr("content");
    </script>
    <script type='application/ld+json'>
      {
        "@context": "http://www.schema.org",
        "@type": "LocalBusiness",
        "name": "BizName",
        "telephone": "+1234567890",
        "description": "'+desc+'",
        ....
      }
    </script>

Я понимаю, что это не собирается полностьюпередайте переменную desc непосредственно в разметку JSON, поскольку она находится в отдельных тегах сценария. Я просто не уверен, как объединить два, чтобы он работал правильно. Надеюсь, что это имеет смысл и открыто для любых предложений.

Ответы [ 2 ]

2 голосов
/ 04 ноября 2019

Сначала создайте схему, а затем внедрите ее.

<script>
      const desc = $('meta[name=description]').attr("content").toString();
      var schema = {
        "@context": "http://www.schema.org",
        "@type": "LocalBusiness",
        "name": "BizName",
        "telephone": "+1234567890",
        "description": desc,
        ....
      }      
      var script = document.createElement('script');
        script.type = "application/ld+json";
        script.text = JSON.stringify(schema);

        document.querySelector('body').appendChild(script);
</script>
0 голосов
/ 04 ноября 2019

Вы не можете - это статическая разметка JSON, а не динамический JavaScript.

Технически, вы можете динамически внедрить целый новый тег <script> со всемисхемы JSON, но JavaScript, вероятно, * не будет интерпретироваться программным обеспечением, анализирующим вашу страницу для данных JSON + LD.

...