Javascript动态更改元数据/元标记

dou*_*lin 3 javascript iframe metadata dynamic meta-tags

我将描述我想要完成的事情,如果我的方法看起来很愚蠢,请随时告诉我:

我有一个带有视频库和flash视频播放器iframe的页面.当用户点击视频缩略图时,它开始在框架中播放.

用户还可以通过将文件路径附加到url的末尾 - blabla.com/videogallery?videofilepath来转到加载到iframe中的特定视频的页面.我进行了设置,以便轻松分享视频.

我希望能够为facebook/twitter添加分享按钮,但我无法让它们工作并使用正确的元数据(图像和标题)正确呈现自己.

所以我想把Share按钮放在播放器iframe中,然后在视频发生变化时动态更新元数据标签,但我不确定如何解决这个问题.

任何帮助将不胜感激,谢谢.

Dow*_*046 10

你想在jQuery的代码中做这样的事情

$(document).ready(function(){
    $('title').text("Your new title tag here");
    $('meta[name=description]').attr('content', 'new Meta Description here');
});
Run Code Online (Sandbox Code Playgroud)


ber*_*bas 5

你可以使用this(jquery)在head标签中添加任何内容

$('head').append('<meta .... />');
Run Code Online (Sandbox Code Playgroud)


Sah*_*dhi 5

由于以上两个解决方案都使用JQuery,这里是一个纯javascript的解决方案,如果有人正在寻找:

更改标题:

<script>document.title = "this is title text";</script>
Run Code Online (Sandbox Code Playgroud)

更改任何元标记:

<meta name="description" content="this is old content which we are going to change through javascript">
Run Code Online (Sandbox Code Playgroud)

javascript代码更改上面的元标记.

<script>
var allMetaElements = document.getElementsByTagName('meta');
//loop through and find the element you want
for (var i=0; i<allMetaElements.length; i++) { 
  if (allMetaElements[i].getAttribute("name") == "Description") { 
     //make necessary changes
     allMetaElements[i].setAttribute('content', "description you want to include"); 
     //no need to continue loop after making changes.
     break;
  } 
} 
Run Code Online (Sandbox Code Playgroud)

祝好运.


Ead*_*adz 5

纯 javascript 中更简短的答案。

document
      .getElementsByTagName('meta')
      .namedItem('description')
      .setAttribute('content','My Meta Description Here')
Run Code Online (Sandbox Code Playgroud)