¿Es posible usar jQuery para leer metaetiquetas?
Pregunta
¿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 algún tutorial?
Solución
Solo usa algo como:
var author = $('meta[name=author]').attr("content");
Otros consejos
¿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.
Esta es la misma respuesta que di aquí: https://stackoverflow.com/questions/4059207
Acabo de probar 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 todavía no me deja comentar)
jQuery ahora es compatible con .data ();
, así que si tiene
<div id='author' data-content='stuff!'>
uso
var author = $('#author').data("content"); // author = 'stuff!'
$("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.
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');
var author = $('meta[name=author]').attr("content");
resuelve mi problema, como:
<meta name="author" content="a314r">