将 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>
我正在尝试获取元描述并将其内容复制到某些 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>