- 我不认为规范化会起作用。使用
<link rel="canonical href="microdatversion">
基本上会告诉机器人索引微数据版本及其所有微数据(好)。但它也会对这个版本的查询结果进行排名,这会将用户带到微数据版本(坏)。
- 我会写一个脚本来添加所有的微数据。显然推迟脚本加载。您可以像这样将属性添加为类名。
<div class="it-p is ip-d"></div>
<script defer>
功能简写(类型,cName)
{
如果(类型 ==='itemprop')
{
开关(cName)
{
案例“n”:返回“名称”;
休息;
案例“d”:返回“描述”
休息;
默认值:返回 cName;
}
}
如果(类型==='项目类型')
{
开关(cName)
{
案例“p”:返回“产品”;
休息;
默认值:返回 cName;
}
}
}
函数 addItemprop(el,cName)
{
cName = shortHand('itemprop', cName);
el.setAttribute('itemprop',cName)
}
函数 addItemtype(el,cName)
{
cName = shortHand('itemtype', cName);
el.setAttribute('itemtype','http://scheme.org/'+cName)
}
$('[class]').filter(function()
{
var removeclass=[];
for(var i=0; i < this.classList.length; i++)
{
var cName =this.classList[i];
if (/^ip-/.test(cName))addItemprop(this,cName.replace('ip-',''));removeclass.push(cName);
if (cName =='is')removeclass.push(cName);this.setAttribute('itemscope','');
if (/^it-/.test(cName))addItemtype(this,cName.replace('it-',''));removeclass.push(cName);
}
for(var i=0; i < removeclass.length; i++)
{
this.classList.remove(removeclass[i]);
}
});