Les informations dont j'ai besoin se trouvent dans une balise meta. Comment puis-je accéder aux "content"
données de la balise meta quand property="video"
?
HTML:
<meta property="video" content="http://video.com/video33353.mp4" />
javascript
html
greasemonkey
meta-tags
supercoolville
la source
la source
<meta>
c'est censé avoir unname
attribut, nonproperty
. Les développeurs utilisant l'attribut standard devront adapter le code donné par la plupart des réponses.Réponses:
Vous pouvez utiliser ceci:
la source
document.querySelector("meta[property='og:url']").getAttribute('content')
const
/let
devraient prendre en charge.querySelector
!Les autres réponses devraient probablement faire l'affaire, mais celle-ci est plus simple et ne nécessite pas jQuery:
La question d'origine utilisait une balise RDFa avec un
property=""
attribut. Pour les<meta name="" …>
balises HTML normales, vous pouvez utiliser quelque chose comme:la source
document.head.querySelector
m'a donnénull
maisdocument.querySelector
a parfaitement fonctionné[content]
dans le sélecteur étend cette exception au cas où toute balise correspondante n'a pas d'attribut de contenu. IMO, il est plus logique dans ce cas d'obtenir un résultat nul, mais cela dépend de la préférence de l'implémenteur, je suppose.Beaucoup de réponses difficiles à lire ici. Une doublure ici
la source
Il existe un moyen plus simple:
la source
document.querySelector
version fonctionne jusqu'à IE8, donc c'est beaucoupUtilisé de cette manière:
L'exemple sur cette page:
la source
type error
asundefined
parce que la balise META elle-même manquait. J'ai résolu cela en attribuant une variable et en enveloppant ledocument.queryselector
dans une instruction try afin que je puisse obtenir""
par défaut en cas d'erreur.Si vous utilisez JQuery, vous pouvez utiliser:
la source
Dans Jquery, vous pouvez y parvenir avec:
En JavaScript, vous pouvez y parvenir avec:
la source
document.getElementsByTagName('meta')['video'].getAttribute('content');
si le balisage est comme ci-dessous:<meta name="video" content="http://video.com/video33353.mp4" />
Chemin - [ 1 ]
Vous pouvez obtenir l'erreur: Uncaught TypeError: Impossible de lire la propriété 'getAttribute' de null
Chemin - [ 2 ]
Vous pouvez obtenir l'erreur: Uncaught TypeError: Impossible de lire la propriété 'getAttribute' de null
Voie - [ 3 ]
Au lieu de recevoir une erreur, vous obtenez
null
, c'est bien.la source
Simple, non?
la source
Ce code fonctionne pour moi
JS
Exemple de violon: http://jsfiddle.net/muthupandiant/ogfLwdwt/
la source
Version de mise à jour:
la source
Voici une fonction qui renverra le contenu de n'importe quelle balise meta et mémorisera le résultat, évitant les requêtes inutiles du DOM.
Et voici une version étendue qui interroge également les balises graphiques ouvertes et utilise Array # some :
la source
Ma variante de la fonction:
la source
Personnellement, je préfère les obtenir dans un hachage d'objet, puis je peux y accéder n'importe où. Cela pourrait facilement être défini sur une variable injectable, puis tout pourrait l'avoir et ne l'attraper qu'une seule fois.
En enveloppant la fonction, cela peut également être fait comme une seule doublure.
la source
FYI selon https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta, les attributs globaux sont valides, ce qui signifie que l'
id
attribut peut être utilisé avecgetElementById
.la source
Démo
la source
Si vous êtes intéressé par une solution plus poussée pour obtenir toutes les balises méta, vous pouvez utiliser ce morceau de code
la source
si la balise meta est:
JQuery sera:
JavaScript sera: (Il renverra du HTML entier)
la source