เป็นไปได้ไหมที่จะใช้ jQuery เพื่ออ่านเมตาแท็ก


157

เป็นไปได้ไหมที่จะใช้ jQuery เพื่ออ่านเมตาแท็ก ถ้าเป็นเช่นนั้นคุณรู้หรือไม่ว่าโครงสร้างพื้นฐานของโค้ดจะเป็นอะไรหรือมีลิงก์ไปยังบทช่วยสอนใด ๆ

คำตอบ:


307

เพียงใช้สิ่งที่ชอบ:

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

3
var author = $ ("meta [name = 'author']"). attr ("content"); การอ้างอิงเป็นเพียงเล็กน้อย
จิมลำโพง

1
@ JimSpeaker: ในทางเทคนิคแล้วไม่มีความจำเป็นที่จะต้องใส่เครื่องหมายอัญประกาศสำหรับคำเดียวแม้ว่าฉันจะยอมรับว่ามันเป็นการดีกว่าที่จะรวมไว้โดยไม่คำนึงถึง
แควนตัส 94 Heavy

20

โปรแกรมแยกวิเคราะห์นี้จะช่วยคุณได้ไหม

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

มันวิเคราะห์ข้อมูล meta OG ไปยัง JSON ดังนั้นคุณสามารถใช้ข้อมูลได้โดยตรง หากคุณต้องการคุณสามารถอ่าน / เขียนโดยตรงโดยใช้ JQuery ตัวอย่างเช่น:

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

หมายเหตุเครื่องหมายคำพูดเดี่ยวรอบค่าแอตทริบิวต์ สิ่งนี้จะช่วยป้องกันข้อผิดพลาดในการแยกวิเคราะห์ใน jQuery


3
parser ที่คุณระบุไว้ที่นี่ (และในอีกไม่กี่คำถาม) สำหรับ OG DATA (คุณพูดด้วยตัวคุณเอง) ในขณะที่ OP กำลังถามเกี่ยวกับ META TAGS และไม่ใช่ OG Data
Dementic

ลิงก์ตอบกลับตายไปแล้ว
Denis G. Labrecque

8

ฉันเพิ่งลองสิ่งนี้และนี่อาจเป็นข้อผิดพลาดเฉพาะรุ่น jQuery แต่

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

ส่งผลให้เกิดข้อผิดพลาดทางไวยากรณ์ต่อไปนี้สำหรับฉัน:

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

เห็นได้ชัดว่ามันไม่ชอบลำไส้ใหญ่ ฉันสามารถแก้ไขได้โดยใช้เครื่องหมายคำพูดคู่และเดี่ยวดังนี้:

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

(jQuery เวอร์ชั่น 1.8.3 - ขออภัยฉันจะแสดงความคิดเห็นกับ @Danilo แต่จะไม่ให้ความเห็น)


5

jQuery รองรับ.data();แล้วดังนั้นหากคุณมี

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

ใช้

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

4
$("meta")

ควรให้องค์ประกอบกลับคืนซึ่งมีชื่อแท็กคือ META จากนั้นคุณสามารถวนซ้ำคอลเล็กชันเพื่อเลือกคุณลักษณะขององค์ประกอบที่คุณสนใจ


1

สำหรับชื่อ meta twitter ที่เลือกคุณสามารถเพิ่มแอตทริบิวต์ data

ตัวอย่าง:

meta name="twitter:card" data-twitterCard="" content=""
$('[data-twitterCard]').attr('content');
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.