是否可以使用 jQuery 读取元标记

Posted

技术标签:

【中文标题】是否可以使用 jQuery 读取元标记【英文标题】:Is it possible to use jQuery to read meta tags 【发布时间】:2010-11-05 09:36:38 【问题描述】:

是否可以使用 jQuery 来读取元标记。如果是这样,您是否知道代码的基本结构是什么,或者有任何教程的链接。

【问题讨论】:

【参考方案1】:

只需使用类似的东西:

var author = $('meta[name=author]').attr('content');

或者这个也可以

var author = $('meta[name=author]').prop('content');

【讨论】:

var author = $("meta[name='author']").attr("content");报价有点不对。 @JimSpeaker:从技术上讲,单个单词不需要引号,尽管我同意无论如何最好包含它们。【参考方案2】:

这个解析器会帮助你吗?

https://github.com/fiann/jquery.ogp

它将元 OG 数据解析为 JSON,因此您可以直接使用数据。如果您愿意,当然可以使用 JQuery 直接读取/写入它们。例如:

$("meta[property='og:title']").attr("content", document.title);
$("meta[property='og:url']").attr("content", location.toString());

注意属性值周围的单引号;这可以防止 jQuery 中的解析错误。

【讨论】:

您在此处指定的解析器(以及其他几个问题)用于 OG DATA(您甚至自己这么说),而 OP 询问的是 META TAGS 而不是 OG Data。 回复链接已失效。【参考方案3】:

我刚试过,这可能是 jQuery 版本特定的错误,但是

$("meta[property=twitter:image]").attr("content");

导致我出现以下语法错误:

Error: Syntax error, unrecognized expression: meta[property=twitter:image]

显然它不喜欢冒号。我可以通过使用这样的双引号和单引号来修复它:

$("meta[property='twitter:image']").attr("content");

(jQuery 版本 1.8.3 -- 抱歉,我会在 @Danilo 上发表评论,但它不会让我发表评论)

【讨论】:

【参考方案4】:

jQuery 现在支持.data();,所以如果你有

<div id='author' data-content='stuff!'>

使用

var author = $('#author').data("content"); // author = 'stuff!'

【讨论】:

【参考方案5】:
$("meta")

应该返回一个标签名称为 META 的元素数组,然后您可以遍历该集合以挑选出您感兴趣的元素的任何属性。

【讨论】:

【参考方案6】:

对于选择 twitter 元名称,您可以添加一个数据属性。

例子:

meta name="twitter:card" data-twitterCard="" content=""
$('[data-twitterCard]').attr('content');

【讨论】:

以上是关于是否可以使用 jQuery 读取元标记的主要内容,如果未能解决你的问题,请参考以下文章

使用 jQuery 设置元标记值时遇到问题 [重复]

如何在不使用 jquery append 的情况下插入元标记?

Ajax 片段元标记 - Googlebot 未读取页面内容

仅使用 Javascript 从 HTML 字符串中提取元标记

是否可以使用 UDF 从 BigQuery 读取 gcs 对象的元数据

Jquery 无法读取 Internet Explorer 上的自定义标记文本