Ist es möglich, jQuery zum Lesen von Meta-Tags zu verwenden?

157

Ist es möglich, jQuery zum Lesen von Meta-Tags zu verwenden? Wenn ja, wissen Sie, wie die Grundstruktur des Codes aussehen wird, oder haben Links zu Tutorials.

Ankur
quelle

Antworten:

307

Verwenden Sie einfach etwas wie:

var author = $('meta[name=author]').attr("content");
MiffTheFox
quelle
3
var author = $ ("meta [name = 'author']"). attr ("content"); Das Zitat war nur ein wenig daneben.
Jim Speaker
1
@ JimSpeaker: Technisch gesehen sind keine Anführungszeichen für ein einzelnes Wort erforderlich, obwohl ich zustimmen würde, dass es besser ist, sie unabhängig davon einzuschließen.
Qantas 94 Heavy
20

Würde Ihnen dieser Parser helfen?

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

Es analysiert Meta-OG-Daten in JSON, sodass Sie die Daten einfach direkt verwenden können. Wenn Sie möchten, können Sie diese natürlich direkt mit JQuery lesen / schreiben. Beispielsweise:

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

Beachten Sie die einfachen Anführungszeichen um die Attributwerte. Dies verhindert Analysefehler in jQuery.

Danilo Moret
quelle
3
Der Parser, den Sie hier angeben (und in einigen weiteren Fragen), ist für OG DATA (Sie sagen es sogar selbst), während das OP nach META TAGS und nicht nach OG Data fragte.
Dementic
Antwortlink ist tot.
Denis G. Labrecque
8

Ich habe es gerade versucht, und dies könnte ein Versionsfehler von jQuery sein, aber

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

führte für mich zu folgendem Syntaxfehler:

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

Anscheinend mag es den Doppelpunkt nicht. Ich konnte es beheben, indem ich doppelte und einfache Anführungszeichen wie folgt verwendete:

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

(jQuery Version 1.8.3 - Entschuldigung, ich hätte dies zu @Danilo kommentiert, aber ich kann es noch nicht kommentieren.)

charltoons
quelle
5

jQuery unterstützt jetzt .data();, wenn ja

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

verwenden

var author = $('#author').data("content"); // author = 'stuff!'
Soße
quelle
4
$("meta")

Sollte Ihnen ein Array von Elementen zurückgeben, deren Tag-Name META ist, und dann können Sie die Sammlung durchlaufen, um die Attribute der Elemente auszuwählen, an denen Sie interessiert sind.

illvm
quelle
1

Für einen ausgewählten Twitter-Metanamen können Sie ein Datenattribut hinzufügen.

Beispiel:

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