Ajouter la meta description à la fin de l'affichage du contenu avec javascript !

Résolu/Fermé
admindunet Messages postés 127 Date d'inscription mardi 1 septembre 2015 Statut Membre Dernière intervention 12 mars 2023 - 14 mai 2021 à 18:49
 Totox - 15 mai 2021 à 17:48
Bonjour,

Dans le header de ma page j'ai le code de meta description suivant :

<meta name="description" content="" />


En bas de la page, dans le contenu du site, je souhaite ajouter le contenu de la description, j'ai donc fais ça mais ça ne marche pas lorsque je regarde le code source de la page :


<script>
var $meta = $('meta[name=description]').attr('content', '<?php echo $description; ?>');
$('body').text($meta.attr('content'));
</script>


Merci pour votre aide :)


Configuration: Windows / Chrome 90.0.4430.212

A voir également:

8 réponses

jordane45 Messages postés 38367 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 janvier 2025 4 721
14 mai 2021 à 21:35
Aucun souci avec ce code
<!DOCTYPE html>
<html>
  <head>
    <title>TEST</title>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <script
      src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4="  crossorigin="anonymous"></script>

  </head>
  <body>

    <script>
      $('meta[name=description]').remove();
      $('head').append( '<meta name="description" content="Nouveau Contenu">' );
    </script>
  </body>
</html>


Si ça ne marche pas chez toi, commence par vider le cache de ton navigateur... et/ou essaye avec un autre navigateur.

1
jordane45 Messages postés 38367 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 janvier 2025 4 721
14 mai 2021 à 18:57
Bonjour,

essaye avec ça
   //On supprime le meta existant
    $('meta[name=description]').remove();
   // on créé le nouveau avec le nouveau contenu
    $('head').append( '<meta name="description" content="Nouveau Contenu">' );


Essaye déjà comme ça sans le PHP ....


Par contre, vu que tu sembles avoir les données disponibles en php .. pourquoi ne les charges tu pas directement dans les meta au lieu de passer par du js ?

0
admindunet Messages postés 127 Date d'inscription mardi 1 septembre 2015 Statut Membre Dernière intervention 12 mars 2023 1
14 mai 2021 à 19:39
Merci jordane45, je vais tester, sinon, pour votre question, car j'ai un seul header.php inclus dans toutes mes pages, du coup, je compte ajouter la descriptions par le js dont le contenu est récupérer différemment dans chaque page.
0
admindunet Messages postés 127 Date d'inscription mardi 1 septembre 2015 Statut Membre Dernière intervention 12 mars 2023 1
14 mai 2021 à 20:41
@jordane45
J'ai ajouté ce code :
<script> 
$('meta[name=description]').remove();
$('head').append( '<meta name="description" content="Nouveau Contenu">' );
</script>

ça ne donne rien, sachant que dans head j'ai :
<meta name="description" content="" />
que même en la supprimant manuellement ça change rien :(

0
jordane45 Messages postés 38367 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 janvier 2025 4 721
14 mai 2021 à 20:54
Tu n'as rien qui s'affiche dans la console comme un éventuel message d'erreur ?
0
jordane45 Messages postés 38367 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 janvier 2025 4 721 > jordane45 Messages postés 38367 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 janvier 2025
14 mai 2021 à 20:55
Tu as bien charger la librairie jQuery puisque c'est cette syntaxe que tu utilises ?
0
admindunet Messages postés 127 Date d'inscription mardi 1 septembre 2015 Statut Membre Dernière intervention 12 mars 2023 1
Modifié le 14 mai 2021 à 21:23
Aucune erreur coté console, et mes codes s'affichent bien dans le code source :


<html>

<head>
<title>Mon nouveau site</title>
<meta name="description" content="" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="/bootstrap/css/bootstrap.min.css" type="text/css" />
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script>
<link rel="stylesheet" href="/bootstrap/styleperso.css" type="text/css" />
<script src="/bootstrap/js/bootstrap.min.js"></script>
</head>
<body>
<script>
$('meta[name=description]').remove();
$('head').append( '<meta name="description" content="Nouveau Contenu">' );
</script>
......


0
jordane45 Messages postés 38367 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 janvier 2025 4 721
14 mai 2021 à 21:14
Et tu charges bien la librairie jQuery ??
Je ne la vois pas dans le bout de code que tu nous montres...
Pourrais-tu nous partager le code source complet d'une page histoire qu'on puisse s'assurer que tout est bien placé est bien chargé ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
admindunet Messages postés 127 Date d'inscription mardi 1 septembre 2015 Statut Membre Dernière intervention 12 mars 2023 1
14 mai 2021 à 21:23
Désolé j'ai oublié de copier le code en dessous de title, c'est bon j'ai modifié mon code ci-dessus
0
admindunet Messages postés 127 Date d'inscription mardi 1 septembre 2015 Statut Membre Dernière intervention 12 mars 2023 1
14 mai 2021 à 21:44
Je viens d'insérer votre code dans une nouvelle page vierge, dans le code source de la page une fois ouverte on ne voit pas la description !


0
jordane45 Messages postés 38367 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 janvier 2025 4 721
14 mai 2021 à 21:54
Regarde dans l'inspecteur.
Tu verras qu'il y est.

NB:

The main difference is the “View Source” shows the HTML that was delivered from the web server to your browser. Inspect elements is a developer tool to look at the state of the DOM tree after the browser has applied its error correction and after any Javascript have manipulated the DOM
0
admindunet Messages postés 127 Date d'inscription mardi 1 septembre 2015 Statut Membre Dernière intervention 12 mars 2023 1
14 mai 2021 à 22:58
ah d'accord :D google le compte sans problème comme ça ?
0
jordane45 Messages postés 38367 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 janvier 2025 4 721
14 mai 2021 à 23:04
Oui Google analyse le code de la page une fois qu'elle a terminé de se charger
0
Salut,
c'est faux ça il me semble:
  <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
      <meta name="viewport" content="width=device-width, initial-scale=1">


L'attribut content est mal fermé dans la première balise meta(une virgule à la place de l'apostrophe double et content englobe charset)

N'oubliez pas que les balises meta doivent être en XML et non en HTML5(au moins pour l'encodage du document, les autres je ne suis pas sûr mais comme jsutement elles sont hors du document HTML je voit pas pourquoi ça ne répondrait pas à la même logique).
Le XML est beaucoup plus rigoureux que le HTML5 donc on ne peut pas se passer des guillemets(double quote) pour les remplacer par des simple quotes sur chaque attribut(ou s'en passer comme on peut le faire en HTML5) et les balises auto-fermantes doivent être fermées correctement.
Donc en XML:

<!-- est faux car non respectueux de la syntaxe XML: -->
<autofermante attribut="valeur">
<!-- juste car respecte la syntaxe XML: -->
<autofermante attribut="valeur" />

-1