我需要的信息在一个元标签中。当属性=“视频”时,我如何访问元标签的“内容”数据?
HTML:
<meta property="video" content="http://video.com/video33353.mp4" />
我需要的信息在一个元标签中。当属性=“视频”时,我如何访问元标签的“内容”数据?
HTML:
<meta property="video" content="http://video.com/video33353.mp4" />
当前回答
最简单的方式
我们可以直接使用一行来获得标题部分的元描述或关键字或任何元标记,如下所示:
document.head.getElementsByTagName('meta')['description'].getAttribute('content');
只需将['description']更改为关键字或元名称rang的元素
这是一个例子: 使用文档。获取元名称值
其他回答
很简单,对吧?
document.head.querySelector("meta[property=video]").content
function getMetaContentByName(name,content){
var content = (content==null)?'content':content;
return document.querySelector("meta[name='"+name+"']").getAttribute(content);
}
以这种方式使用:
getMetaContentByName("video");
本页上的例子:
getMetaContentByName("twitter:domain");
document.head.querySelector(“元[属性=视频]”).content;
<html>
<head>
<meta property="video" content="http://video.com/video33353.mp4" />
<meta name="video" content="http://video.com/video33353.mp4" />
</head>
<body>
<script>
var meta = document.getElementsByTagName("meta");
size = meta.length;
for(var i=0; i<size; i++) {
if (meta[i].getAttribute("property") === "video") {
alert(meta[i].getAttribute("content"));
}
}
meta = document.getElementsByTagName("meta")["video"].getAttribute("content");
alert(meta);
</script>
</body>
</html>
Demo
复杂网站和元数据的问题是元标签并不总是有itemprop属性。在某些情况下,它们只有itemprop而没有name属性。
使用这个脚本,您可以获得带有itemprop属性的所有元数据并打印其内容。
const allMeta = document.getElementsByTagName("meta");
for (let i = 0; i < allMeta .length; i++) {
if( allMeta [i].getAttribute("itemprop") != null){
console.log( allMeta [i].getAttribute("itemprop")+":"+allMeta [i].getAttribute('content') );
}
}