comment ajouter quoi que ce soit dans <head> grâce à jquery/javascript?
De travail avec la CMS, qui empêche de modifier la source HTML pour <head>
élément.
Par exemple je veux ajouter ce qui suit au-dessus de la <title>
tag:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
Cela ne fait pas de sens... La tête est analysée avant l'exécution de javascript. L'ajout de méta stuf à la tête via javascript n'aurait pas l'effet désiré.
oui. les réponses de toutes les questions m'aide
Alors que pas liées à la CMS en question, il peut être judicieux d'ajouter des balises meta dans certaines circonstances. Il existe différents addons de navigateur et le javascript les injections d'utiliser les données qui sont dans les balises meta pour recueillir des informations. Facebook de l'OpenGraph en est un exemple. L'injection des balises meta dans le head est nécessaire lorsque vous n'avez pas un accès direct à l'origine de l'HTML, si par la faute d'un CMS ou parce que vous avez écrit un script javascript addon/injection vous-même.
Notez qu'il est possible que l'ajout de
Bon point, c'est ce qui arrive lorsque l'on se focalise trop sur le problème 😉
oui. les réponses de toutes les questions m'aide
Alors que pas liées à la CMS en question, il peut être judicieux d'ajouter des balises meta dans certaines circonstances. Il existe différents addons de navigateur et le javascript les injections d'utiliser les données qui sont dans les balises meta pour recueillir des informations. Facebook de l'OpenGraph en est un exemple. L'injection des balises meta dans le head est nécessaire lorsque vous n'avez pas un accès direct à l'origine de l'HTML, si par la faute d'un CMS ou parce que vous avez écrit un script javascript addon/injection vous-même.
Notez qu'il est possible que l'ajout de
<meta>
tags dynamiquement n'aura aucun effet, selon ce qu'ils sont et de ce navigateur est impliqué.Bon point, c'est ce qui arrive lorsque l'on se focalise trop sur le problème 😉
OriginalL'auteur Jitendra Vyas | 2009-12-14
Vous devez vous connecter pour publier un commentaire.
Vous pouvez sélectionner et ajouter à cela comme normal:
Lire la documentation: docs.jquery.com/Manipulation
insertBefore
,insertAfter
est ce que vous voulez.J'ai mis cela dans le document.prêt, mais il n'a pas l'ajouter à ma tête contenu
Il est l'ajout de lien, mais le lien ne montre pas dans la vue de la page Source... je peux l'afficher dans le navigateur de développement des outils comme Firebug. Puis-je voir le lien dans l'affichage de la source aussi?
Vous ne le verrez pas dans la vue source, car le code ajoute le document en cours, pas la source d'origine (qui a été fourni par le serveur). C'est pourquoi FireBug et Chrome Dev tools sont donc utiles.
OriginalL'auteur nickf
JavaScript:
Faire de l'élément DOM comme suit:
OriginalL'auteur Joshua Woodward
jQuery
JavaScript:
eh bien oui. je viens de quitter la partie en tant que
...
parce que je n'ai pas l'impression que c'était une partie centrale de la question, et aussi, au moment de la rédaction, il n'y avait pas les mains sur l'exemple de ce qu'il a voulu mettre dans la tête. mais oui, il n'est besoin d'être un DOM-élément.OriginalL'auteur David Hedlund
Dans les navigateurs les plus récents (IE9+) vous pouvez également utiliser document.tête:
Exemple:
OriginalL'auteur Benny Neugebauer
Vous pouvez utiliser
innerHTML
juste concat le champ supplémentaire chaîne;Cependant, vous ne pouvez pas garantir que les choses supplémentaires que vous ajoutez à la tête sera reconnu par le navigateur après la première charge, et il est possible que vous obtiendrez un FOUC (flash de non stylé contenu) que des feuilles de style sont chargés.
Je n'ai pas regardé l'API depuis des années, mais vous pouvez également utiliser
document.écrire
, qui est ce qui a été conçu pour ce genre d'action. Cependant, ce serait vous obliger à bloquer la page de la prestation jusqu'à ce que votre première requête AJAX est terminé.OriginalL'auteur Jivings
Créer un temporaire de l'élément (e. g.
DIV
), l'attribution de votre code HTML à sesinnerHTML
de la propriété, puis ajouter ses nœuds enfants à laHEAD
élément un par un. Par exemple, comme ceci:En comparaison avec la réécriture d'ensemble de la
HEAD
contenu par l'intermédiaire de soninnerHTML
, cela n'aurait pas d'incidence sur les éléments enfants de l'HEAD
élément en quelque sorte.Noter que scripts inséré cette façon ne sont apparemment pas exécuté automatiquement, tandis que les styles sont appliqués avec succès. Donc, si vous avez besoin de scripts à exécuter, vous devez charger les fichiers JS en utilisant Ajax, puis d'exécuter leur contenu à l'aide
eval()
.body
, mais il peut vraiment être fait à l'intérieur de lahead
-tag? J'étais sous l'impression que le seul autorisé balises oùbase
,link
,meta
,title
,style
etscript
?AFAICT, vous avez exactement les éléments de votre réponse Ajax. N'est-ce pas?
En effet, mais je ne peux toujours pas faire fonctionner avec un div à l'intérieur de la balise head. Il semble que Chrome est "smart" suffisante pour afficher le contenu de la div dans le corps de toute façon.
Vous n'avez probablement pas lu la réponse soigneusement. 😉 Le
DIV
élément est juste un temporaire de conteneurs dans le but de l'analyse du code HTML. Vous ne devez pas insérer laDIV
lui-même à laHEAD
. Vous devez insérer ses les nœuds enfants. Veuillez voir l'exemple que j'ai ajouté à la réponse.Ah, bien sûr. Mon mauvais! Qui résout mon problème!
OriginalL'auteur Marat Tanalin
Essayer un javascript pur:
Bibliothèque JS:
Type:
appendHtml(document.head, '<link type="text/css" href="http://example.com/example.css"/>');
ou jQuery:
OriginalL'auteur KingRider
je ne sais pas pourquoi j'ai la haine à l'aide de jquery. j'ai donné de la tête d'un id de la "tête".
OriginalL'auteur noel jose
Avec jquery, vous avez une autre option:
de toute façon il est fonctionner. Option JavaScript d'autres ont dit, c'est correct aussi.
pour cette raison, vous devez utiliser avant $('head').html() pour récupérer toutes les propriétés DOM
À l'aide de
.html()
de ne pas récupérer tous le modèle DOM des propriétés. (Dans la plupart des cas de ce problème, et le plus visible, c'est quand même code pour ajouter de nouveaux champs à un formulaire. La valeur de l'attribut représente la valeur par défaut d'un champ, afin d'obtenirhtml()
et ensuite le paramètre de retour de réinitialiser tous les champs existants à leurs valeurs par défaut).jsbin.com/iyOpEyA/1 - Votre code rejets supplémentaires de la propriété ai-je ajouté.
jsbin.com/iyOpEyA/2 — Votre code re-exécute le code JavaScript de la tête.
OriginalL'auteur Dave