Javascript更改元值

时间:2013-01-05 09:09:22

标签: javascript meta

我目前正在使用google plus按钮。 google plus返回的值取决于我头标记上的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>

1 个答案:

答案 0 :(得分:2)

任何从您的服务器读取HTML的人都不会选择您在浏览器上更改的任何元标记标记。您需要更改服务器上的元标记才能使其生效,除非相关网站使用实际读取标记当前内容的书签。您使用的格式似乎是谷歌专有microdata format

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

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");
  }
}