以下是显示控制台日志成功的代码,但在使用Google的结构化数据测试工具或G +共享按钮进行测试时失败。原始值仍然存在。在这种情况下,“jack”永远不会更新为“jill”。
var newName= "jill"
$("h1").attr('itemprop','name').html(newName);
这是Microdata:
<body itemscope itemtype="http://schema.org/Blog">
<div style="display:none;">
<h1 itemprop="name">jack</h1>
<img itemprop="image" src="http://somehewhere.com/something.png" />
<p itemprop="description">some text</p>
</div>
正如您所看到的,只是尝试将“jack”的值更改为“jill”。
答案 0 :(得分:1)
html()方法不能用于itemprop属性。您需要将其应用于h1标签:
$("h1[itemprop=name]").html(newName);
或者因为newName是简单文本:
$("h1[itemprop=name]").text(newName);
答案 1 :(得分:0)
那是因为GoogleBot(以及其他所有其他人)没有执行(全部)javascript。您不会通过任何客户端脚本设置或更改微数据属性。
答案 2 :(得分:0)
更改微数据值是没有意义的,因为正如dwtm.ts所说,机器人不会执行javascript并只解析在获取页面时直接下载的源代码。你应该使用GWT的“fetch as googlebot”测试工具来检查搜索机器人如何“阅读”你的页面。