Apakah mungkin menggunakan jQuery untuk membaca meta tag

157

Apakah mungkin menggunakan jQuery untuk membaca meta tag. Jika demikian, apakah Anda tahu struktur dasar kode ini, atau memiliki tautan ke tutorial apa pun.

Ankur
sumber

Jawaban:

308

Cukup gunakan sesuatu seperti:

var author = $('meta[name=author]').attr("content");
MiffTheFox
sumber
3
var author = $ ("meta [name = 'author']"). attr ("content"); Kutipannya sedikit aneh.
Jim Speaker
1
@ JimSpeaker: secara teknis tidak perlu mengutip untuk satu kata, meskipun saya akan setuju bahwa lebih baik untuk memasukkan mereka terlepas.
Qantas 94 Heavy
20

Apakah parser ini membantu Anda?

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

Ini mem-parsing meta data OG ke JSON, jadi Anda bisa langsung menggunakan data. Jika Anda suka, Anda dapat membaca / menulisnya langsung menggunakan JQuery, tentu saja. Sebagai contoh:

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

Perhatikan tanda kutip tunggal di sekitar nilai atribut; ini mencegah kesalahan parse di jQuery.

Danilo Moret
sumber
3
parser yang Anda tentukan di sini (dan dalam beberapa pertanyaan lagi) adalah untuk DATA OG (Anda bahkan mengatakannya sendiri) sementara OP bertanya tentang META TAGS dan bukan OG Data.
Demensik
Tautan balasan sudah mati.
Denis G. Labrecque
8

Saya baru saja mencoba ini, dan ini bisa menjadi kesalahan khusus versi jQuery, tetapi

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

mengakibatkan kesalahan sintaksis berikut untuk saya:

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

Rupanya itu tidak suka usus besar. Saya dapat memperbaikinya dengan menggunakan tanda kutip ganda dan tunggal seperti ini:

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

(jQuery versi 1.8.3 - maaf, saya akan membuat komentar ini ke @Danilo, tetapi belum mengizinkan saya berkomentar)

charltoons
sumber
5

jQuery sekarang mendukung .data();, jadi jika sudah

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

menggunakan

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

Seharusnya mengembalikan array elemen yang nama tagnya adalah META dan kemudian Anda dapat mengulangi koleksi untuk memilih atribut apa pun dari elemen yang Anda minati.

illvm
sumber
1

Untuk nama meta twitter tertentu, Anda dapat menambahkan atribut data.

contoh:

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