Je travaille avec un CMS, qui empêche l'édition de la source HTML pour les <head>
élément.
Par exemple, je souhaite ajouter ce qui suit au-dessus de la rubrique <title>
étiquette :
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
Je travaille avec un CMS, qui empêche l'édition de la source HTML pour les <head>
élément.
Par exemple, je souhaite ajouter ce qui suit au-dessus de la rubrique <title>
étiquette :
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
Lire la documentation : docs.jquery.com/Manipulation insertBefore
, insertAfter
est ce que vous voulez.
AppendChild ne nécessite-t-il pas un élément DOM ? var elem = document.createElement() document.getElementsByTagName('head')[0].appendChild( elem ) ;
Dans les navigateurs les plus récents (IE9+), vous pouvez également utiliser document.head :
Ejemplo:
var favicon = document.createElement('link');
favicon.id = 'myFavicon';
favicon.rel = 'shortcut icon';
favicon.href = 'http://www.test.com/my-favicon.ico';
document.head.appendChild(favicon);
Cela supprimera le contenu existant et générera de nouveaux éléments. Cela peut avoir des effets secondaires indésirables tels que la perte de propriétés DOM définies dynamiquement et la ré-exécution de scripts.
C'est pourquoi vous devez utiliser avant $('head').html() pour récupérer toutes les propriétés du DOM.
Utilisation .html()
ne se rétablira pas tous les propriétés du DOM. (L'exemple le plus courant de ce problème, et le plus visible, est l'utilisation d'un code similaire pour ajouter de nouveaux champs à un formulaire. L'attribut value représente la valeur par défaut d'un champ. html()
et le rétablir ensuite réinitialisera tous les champs existants à leurs valeurs par défaut).
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
8 votes
Cela n'a pas de sens... L'en-tête est analysé avant l'exécution du javascript. L'ajout de meta stuf à l'en-tête via javascript n'aurait pas l'effet désiré.
1 votes
@Mickel - Oui. Les réponses à toutes les questions m'aident.
2 votes
Bien que cela ne soit pas lié à la question du CMS, il peut être judicieux d'ajouter des balises méta dans certaines circonstances. Il existe divers modules complémentaires de navigateur et injections javascript qui utilisent les données contenues dans les balises méta pour collecter des informations. OpenGraph de Facebook en est un exemple. L'injection de métabalises dans l'en-tête est nécessaire lorsque vous n'avez pas d'accès direct au code HTML d'origine, que ce soit par la faute d'un CMS ou parce que vous écrivez vous-même un addon/injection javascript.
0 votes
Notez qu'il est possible que l'ajout de
<meta>
dynamiquement n'aura aucun effet, en fonction de leur nature et du navigateur utilisé.0 votes
Bien vu, c'est ce qui arrive quand on se concentre trop sur le problème ;-)
0 votes
@AndreHaverdings Cela a du sens si vous essayez d'ajouter dynamiquement une url canonique pour les robots d'indexation en utilisant quelque chose comme Phantom JS, ou si vous avez quelque chose qui analyse votre DOM autre que le navigateur. Quoi qu'il en soit, ce n'est pas une réponse à la question de l'OP. Gardez cette attitude pour IRC.