是否可以使用 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 append 的情况下插入元标记?
Ajax 片段元标记 - Googlebot 未读取页面内容
仅使用 Javascript 从 HTML 字符串中提取元标记