Можно ли использовать jQuery для чтения мета-тегов?

157

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

Анкур
источник

Ответы:

308

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

var author = $('meta[name=author]').attr("content");
MiffTheFox
источник
3
var author = $ ("meta [name = 'author']"). attr ("content"); Цитирование было только немного от.
Джим Спикер
1
@JimSpeaker: технически нет необходимости в кавычках для одного слова, хотя я бы согласился, что лучше включать их независимо.
Qantas 94 Heavy
20

Этот парсер поможет тебе?

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.

Данило Морет
источник
3
Парсер, который вы здесь указываете (и в нескольких других вопросах), предназначен для OG DATA (вы даже сами так говорите), когда OP спрашивал о META TAGS, а не OG Data.
Дементик
Ссылка для ответа не работает.
Денис Г. Лабрекк
8

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

charltoons
источник
5

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

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

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

var author = $('#author').data("content"); // author = 'stuff!'
Соус
источник
4
$("meta")

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

illvm
источник
1

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

пример :

meta name="twitter:card" data-twitterCard="" content=""
$('[data-twitterCard]').attr('content');
PoussinDev
источник