将 jQuery 中的变量插入 JSON 架构标记

Insert Variable from jQuery Into JSON Schema Markup

我正在尝试获取元描述并将其内容复制到某些 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 标记中,因为它位于单独的脚本标记中。我只是不确定如何将两者结合起来才能正常工作。希望这是有道理的,并对任何建议持开放态度。

你不能 – 它是 static JSON 标记,不是动态 JavaScript.

从技术上讲,您 可以 动态注入一个全新的 <script> 标签和所有架构 JSON,但 JavaScript 可能*赢了不会被软件解析您的页面以获得 JSON+LD 数据。

先构建架构,然后将其注入。

<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>