1

我目前正在使用 google plus 按钮。google plus 返回的值基于我的 head 标签上 meta 中包含的内容

我有一个要使用 g+1 提交的列表,但它在标签下,这就是为什么我无法更新将要在 google plus 上发布的内容

这些是我的代码

<meta itemprop="name" content="<?=$content?>">
<meta itemprop="description" content="<?=$description?>">
<meta itemprop="image" content="http://mysite/image.png">

这些线下面是

    <div> content to submit by g+1
        <div class='g-plusone' data-size='medium' data-annotation='none'></div>
    </div>

    <div> content to submit by g+1
        <div class='g-plusone' data-size='medium' data-annotation='none'></div>
    </div>

    <div> content to submit by g+1
        <div class='g-plusone' data-size='medium' data-annotation='none'></div>
    </div>

 etc.

我如何使用 javascript,所以每当鼠标悬停在 google plus 按钮上时,我可以更新我的 meta 上的值是什么?

喜欢

<div onmouseover='change_meta(x)' class='g-plusone' data-size='medium' data-annotation='none' ></div>

我已经知道如何在 javascript 函数上传递参数。我想知道的是,我需要在该函数中包含什么,以便我可以更新元值。

<script language="JavaScript">
function change_meta(x) {
   what do i need to do here?
}
</script>
4

1 回答 1

2

您在浏览器上更改的任何元标记都不会被从您的服务器读取 html 的任何人拾取。您需要更改服务器上的元标记以使其生效,除非相关站点使用实际读取标记当前内容的小书签。您使用的格式似乎是谷歌专有的微数据格式

也就是说,如果您需要更改标签,您可以这样做

var metas = document.getElementsByTagName("meta");

并循环查找您想要的标签:

for (var i=0; i<metas.length; i++) {  
  if (metas[i].getAttribute("itemprop") && 
      metas[i].getAttribute("itemprop")==="description") {
    metas[i].setAttribute("content","new description");
  }
}
于 2013-01-05T09:17:04.353 回答