Можно ли использовать jQuery для чтения метатегов - PullRequest
148 голосов
/ 24 июня 2009

Можно ли использовать jQuery для чтения метатегов. Если да, то знаете ли вы, какова будет основная структура кода, или имеете ссылки на какие-либо учебные пособия.

Ответы [ 7 ]

283 голосов
/ 24 июня 2009

Просто используйте что-то вроде:

var author = $('meta[name=author]').attr("content");
19 голосов
/ 09 ноября 2010

Поможет ли вам этот парсер?

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.

Это тот же ответ, который я дал здесь: https://stackoverflow.com/questions/4059207

8 голосов
/ 01 апреля 2013

Я только что попробовал это, и это может быть ошибка, связанная с версией 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, но он пока не дает комментариев)

5 голосов
/ 04 июля 2014

jQuery теперь поддерживает .data();, так что если у вас есть

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

использование

var author = $('#author').data("content"); // author = 'stuff!'
4 голосов
/ 24 июня 2009
$("meta")

Должен вернуть вам массив элементов с именем тега META, а затем вы можете выполнить итерацию по коллекции, чтобы выбрать любые интересующие вас атрибуты элементов.

1 голос
/ 01 апреля 2015

Для выбора мета-имени Twitter вы можете добавить атрибут данных.

пример:

meta name="twitter:card" data-twitterCard="" content=""
$('[data-twitterCard]').attr('content');
0 голосов
/ 11 апреля 2017
var author = $('meta[name=author]').attr("content");

решить мою проблему, такую ​​как:

<meta name="author" content="a314r">
...