web-dev-qa-db-fra.com

Est-il possible d'utiliser jQuery pour lire les balises méta

Est-il possible d'utiliser jQuery pour lire les balises méta. Si tel est le cas, connaissez-vous la structure de base du code ou avez-vous des liens vers des didacticiels?.

144
Ankur

Il suffit d'utiliser quelque chose comme:

var author = $('meta[name=author]').attr("content");
279
MiffTheFox

Cet analyseur vous aiderait-il?

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

Il analyse les données méta-OG dans JSon, vous pouvez donc les utiliser directement. Si vous préférez, vous pouvez bien sûr les lire/écrire directement avec JQuery. Par exemple:

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

Notez les guillemets simples autour des valeurs d'attribut; cela empêche les erreurs d'analyse dans jQuery.

Voici la même réponse que j'ai donnée ici: https://stackoverflow.com/questions/4059207

18
Danilo Moret

Je viens d'essayer cela, et cela pourrait être une erreur spécifique à la version de jQuery, mais

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

a entraîné l'erreur de syntaxe suivante pour moi:

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

Apparemment, il n'aime pas les deux points. J'ai pu résoudre ce problème en utilisant des guillemets simples et doubles comme ceci:

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

(jQuery version 1.8.3 - désolé, j'aurais fait un commentaire à @Danilo, mais cela ne me laissera pas encore de commentaire)

8
charltoons

jQuery supporte maintenant .data();, donc si vous avez

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

utilisation

var author = $('#author').data("content"); // author = 'stuff!'
5
Sauce
$("meta")

Devrait vous rendre un tableau d'éléments dont le nom de balise est META, puis vous pourrez parcourir la collection pour sélectionner les attributs des éléments qui vous intéressent.

4
illvm

Pour sélectionner le méta nom Twitter, vous pouvez ajouter un attribut de données.

exemple : 

meta name="Twitter:card" data-twitterCard="" content=""
$('[data-twitterCard]').attr('content');
1
PoussinDev
var author = $('meta[name=author]').attr("content");

résoudre mon problème, tel que:

<meta name="author" content="a314r">
0
Zgpeace