Czy można używać jQuery do odczytywania metatagów

157

Czy można używać jQuery do odczytywania metatagów. Jeśli tak, to wiesz, jaka będzie podstawowa struktura kodu, lub masz linki do samouczków.

Ankur
źródło

Odpowiedzi:

307

Po prostu użyj czegoś takiego:

var author = $('meta[name=author]').attr("content");
MiffTheFox
źródło
3
var autor = $ ("meta [nazwa = 'autor']"). attr ("treść"); Cytat był trochę dziwny.
Jim Speaker
1
@JimSpeaker: technicznie rzecz biorąc, nie ma potrzeby umieszczania cudzysłowów na jedno słowo, chociaż zgodziłbym się, że lepiej jest je zawrzeć niezależnie.
Qantas 94 Heavy
20

Czy ten parser by ci pomógł?

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

Przetwarza dane meta OG do formatu JSON, więc możesz po prostu użyć danych bezpośrednio. Jeśli wolisz, możesz oczywiście czytać / zapisywać je bezpośrednio przy użyciu JQuery. Na przykład:

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

Zwróć uwagę na apostrofy wokół wartości atrybutów; zapobiega to błędom analizy w jQuery.

Danilo Moret
źródło
3
parser, który tu opisujesz (i kilka innych pytań) jest przeznaczony dla OG DATA (nawet sam to mówisz), podczas gdy OP pytał o META TAGI, a nie OG Data.
Dementic
Link do odpowiedzi nie działa.
Denis G. Labrecque
8

Właśnie tego spróbowałem i może to być błąd specyficzny dla wersji jQuery, ale

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

spowodowało dla mnie następujący błąd składni:

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

Najwyraźniej nie lubi okrężnicy. Udało mi się to naprawić, używając podwójnych i pojedynczych cudzysłowów w następujący sposób:

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

(wersja jQuery 1.8.3 - przepraszam, zrobiłbym to jako komentarz do @Danilo, ale nie pozwoli mi to jeszcze komentować)

charltoons
źródło
5

jQuery obsługuje teraz .data();, więc jeśli masz

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

posługiwać się

var author = $('#author').data("content"); // author = 'stuff!'
sos
źródło
4
$("meta")

Powinien zwrócić Ci tablicę elementów, których nazwa tagu to META, a następnie możesz iterować po kolekcji, aby wybrać atrybuty elementów, które Cię interesują.

illvm
źródło
1

W przypadku wybranej nazwy meta Twittera możesz dodać atrybut danych.

przykład:

meta name="twitter:card" data-twitterCard="" content=""
$('[data-twitterCard]').attr('content');
PoussinDev
źródło