¿Es posible usar jQuery para leer metaetiquetas?

157

¿Es posible usar jQuery para leer metaetiquetas? Si es así, ¿sabe cuál será la estructura básica del código o tiene enlaces a tutoriales?

Ankur
fuente

Respuestas:

308

Solo usa algo como:

var author = $('meta[name=author]').attr("content");
MiffTheFox
fuente
3
var author = $ ("meta [name = 'author']"). attr ("content"); La cita estaba un poco apagada.
Jim Speaker
1
@ JimSpeaker: técnicamente no hay necesidad de citas para una sola palabra, aunque estaría de acuerdo en que es mejor incluirlas independientemente.
Qantas 94 Heavy
20

¿Te ayudaría este analizador?

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

Analiza los datos meta OG a JSON, por lo que puede usar los datos directamente. Si lo prefiere, puede leerlos / escribirlos directamente utilizando JQuery, por supuesto. Por ejemplo:

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

Tenga en cuenta las comillas simples alrededor de los valores de los atributos; Esto evita errores de análisis en jQuery.

Danilo Moret
fuente
3
el analizador que está especificando aquí (y en algunas preguntas más) es para OG DATA (incluso usted mismo lo dice) mientras el OP preguntaba por META TAGS y no por OG Data.
Demencial
El enlace de respuesta está muerto.
Denis G. Labrecque
8

Acabo de intentar esto, y esto podría ser un error específico de la versión de jQuery, pero

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

resultó en el siguiente error de sintaxis para mí:

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

Aparentemente no le gusta el colon. Pude solucionarlo usando comillas dobles y simples como esta:

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

(jQuery versión 1.8.3 - lo siento, le habría hecho un comentario a @Danilo, pero aún no me deja comentar)

charltoons
fuente
5

jQuery ahora es compatible .data();, así que si tienes

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

utilizar

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

Debería devolverle una matriz de elementos cuyo nombre de etiqueta es META y luego puede iterar sobre la colección para elegir los atributos de los elementos que le interesan.

illvm
fuente
1

Para seleccionar el meta nombre de twitter, puede agregar un atributo de datos.

ejemplo:

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