Javascript动态更改元数据/元标记
我将描述我试图实现的目标,如果我的方法似乎很愚蠢,请随时告诉我: 我有一个带有视频库和flash视频播放器iframe的页面。当用户单击视频缩略图时,它开始在帧中播放 用户还可以通过将文件路径附加到url-blabla.com/videogallery?videofilepath的末尾,转到将特定视频加载到iframe的页面。我设置了这个,以便视频可以很容易地共享 我希望能够为facebook/twitter添加共享按钮,但我无法让它们正常工作,并使用正确的元数据(图像和标题)正确呈现自己 因此,我也在考虑将共享按钮放在播放器iframe中,然后在视频发生更改时动态更新元数据标记,但我不确定如何进行此操作Javascript动态更改元数据/元标记,javascript,dynamic,iframe,metadata,meta-tags,Javascript,Dynamic,Iframe,Metadata,Meta Tags,我将描述我试图实现的目标,如果我的方法似乎很愚蠢,请随时告诉我: 我有一个带有视频库和flash视频播放器iframe的页面。当用户单击视频缩略图时,它开始在帧中播放 用户还可以通过将文件路径附加到url-blabla.com/videogallery?videofilepath的末尾,转到将特定视频加载到iframe的页面。我设置了这个,以便视频可以很容易地共享 我希望能够为facebook/twitter添加共享按钮,但我无法让它们正常工作,并使用正确的元数据(图像和标题)正确呈现自己 因此
非常感谢您的帮助。您可以使用this(jquery)在head标签中添加任何内容
$('head')。追加('');
您想在jQuery的代码中执行类似的操作吗
$(document).ready(function(){
$('title').text("Your new title tag here");
$('meta[name=description]').attr('content', 'new Meta Description here');
});
由于上述两个解决方案都使用JQuery,因此这里有一个纯javascript的解决方案,以防有人在寻找: 要更改标题,请执行以下操作:
<script>document.title = "this is title text";</script>
document.title=“这是标题文本”;
要更改任何元标记,请执行以下操作:
<meta name="description" content="this is old content which we are going to change through javascript">
更改上述元标记的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;
}
}
var allMetaElements=document.getElementsByTagName('meta');
//循环并找到所需的元素
对于(var i=0;i@bernabas用简单的JavaScript回答:
document.head.textContext+=''
纯javascript中的简短答案
document
.getElementsByTagName('meta')
.namedItem('description')
.setAttribute('content','My Meta Description Here')
搜索引擎可以获得新的值吗?我尝试使用在线seo工具(),它没有得到js设置的值。更不用说已经得到了答案-蜘蛛无法读取它们,因此应该在服务器端生成元数据。简单而且有效!我正在寻找一种解决方案,将头添加到Meteor Iron路由器支持的应用程序中,并找到了各种复杂的解决方案。这非常有效。
document
.getElementsByTagName('meta')
.namedItem('description')
.setAttribute('content','My Meta Description Here')