IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Modification balise Title


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 571
    Points : 97
    Points
    97
    Par défaut Modification balise Title
    Bonjour,

    J'ai un page html classique www.monsite.fr/mapage.html
    Dans ce fichier html, j'ai ma balise titre :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <title>Ceci est mon titre</title>

    Sur cette page, j'ai des liens qui vont faire appel à des fonction JS et qui affiche un contenu complémentaire sur le coté droit
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <a id="Line1" href="" onclick="javascript:Line1(); return false;" >Line1</a>
    <a id="Line2" href="" onclick="javascript:Line2(); return false;" >Line2</a>

    Ma question est la suivante.
    Est ce possible de changer dynamiquement la balise titre selon le choix de l'utilisateur.
    Par exemple
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <title>Ceci est mon titre - Line1 </title>
    S'il a cliquer sur la ligne 1, et de même pour la ligne 2 ....

    Je précide (c'est peut être important) que s'il clique sur la ligne 1, on va alors avoir en URL : www.monsite.fr/mapage.html?Line1()

    Merci pour votre aide si vous avez des idées.

    PS : Certain site utilise la balise Title pour avoir des informations, je voudrais pouvoir apporter plus de précision .....

    Thais

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 571
    Points : 97
    Points
    97
    Par défaut
    En fouillant un peu plus, j'ai trouve comment rendre mon title dinamyque en JS,

    J'ai juste rajouté, par exemple dans ma fonction Line1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.title="Ceci est mon nouveau titre - Line1"
    Et quand je regarde le code source généré, c'est bon.
    Par contre, il semblerait que des sites type Viadeo ou LinkedIn quand on publie le lien vers cette page ne puisse récupérer ce nouveau titre .....

    Une idée ?

    Thais

  3. #3
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    onclick="javascript:Line1(); return false;"
    on ne mets pas de javascript: dans le code voir la FAQ

    Viadeo ou LinkedIn ne font que de l'analyse statique de texte.

    lorsque tu ouvre une page avec ton navigateur il se passe ceci
    1) ouverture de la connexion TCP
    2) envoie de GET /mapage.html
    3) réception du texte décrivant la page en HTML
    4) création d'un document par le moteur HTML par interprétation du texte. (dans ton cas création d'un DOMElement Title)
    5) Activation du Moteur JavaScript (dans ton cas modification du DOMElement Title, le texte source lui n'est pas touché sur l'élément et modifié)

    Viadeo ou LinkedIn font ceci
    1) ouverture de la connexion TCP
    2) envoie de GET /mapage.html
    3) réception du texte décrivant la page en HTML
    4) analyse du texte pour trouver la balise Tite
    5) Référencent de la page avec le contenu de la balise.
    Viadeo ou LinkedIn ont repéré dans ta page plusieurs liens pour chacun il vont faire la même chose.
    mais tes liens line1 et line2 n'ont pas de cible et un attribut onclic
    Viadeo ou LinkedIn en déduisent que ces lien on pour cible la page courante
    il les référencent donc tous les deux avec le titre de la page courante.

    A+JYT

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 571
    Points : 97
    Points
    97
    Par défaut
    Bonjour,

    Merci beaucoup pour ton aide.

    Même si ma page est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    www.monsite.fr/mapage.html?Line1()
    Quand je regarde le texte source, je vois bien mon <Title> modifié, cela veut dire que Viadeo ou Linkedin ne le vois pas ?
    Il faut passer par du PHP ?

    Thais

    PS : Désolé, mais je suis un peu paumée la ...

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 571
    Points : 97
    Points
    97
    Par défaut
    Bonjour,

    j'ai fais un petit fichier exemple pour essayé d'être plus clair dans mon soucis, cf. ci-joint
    Sekaijin, j'ai laissé dans le fichier le bout de code avec document.title qui change bien le titre mais ne fonctionne pas avec Viadeo et LinkedIn comme tu me l'as si bien expliqué.

    Par contre, je ne sais pas dans quelle direction chercher pour faire que ca marche ....

    Une piste ? Merci d'avance

    ThaisLink.html

  6. #6
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    a vrai dire ce que tu cherche à faire n'a pas beaucoup de sens
    le U de U URL si gnifie Universal et le R Resource
    à une URL correspond une seule ressource

    depuis que cette notion à été définie on mets dans une page une application
    mais il viendrait à l'idée de personne de faire une url pour designer l'application Word en lui mettant comme nom le titre du document qui est ouvert en ce moment.
    car à l'ouverture suivante on ne sais quel document sera ouvert.

    c'est pourtant ce que tu cherche à faire.
    si tu veux que l'url désigne un document en particulier il te faut une url qui désigne ce document et pas la page qui sert d'application pour l'afficher.

    pour que ça fonctionne avec les moteur de recherche et les outils d'indexation
    il te faut respecter la règle
    1 URL 1 Ressource


    une même URL ne peut pas désigner en même temps plusieurs chose.
    A+JYT

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 571
    Points : 97
    Points
    97
    Par défaut
    Ok, donc

    www.monsite.fr/mapage.html?Line1()
    et
    www.monsite.fr/mapage.html?Line2()

    ne se comporte pas comme 2 URL distinctes, mais comme une seule (i.e. www.monsite.fr/mapage.html)

    C'est bien cela ?

    Thais

  8. #8
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Mais tes deux URL ne veulent rien dire...
    Tu sembles considérer qu'il suffit d'ajouter un nom de fonction à l'URL pour que cette fonction s'exécute, c'est pas possible.

    Les paramètres passés à l'URL servent au serveur à donner des indications sur un état particulier du document demandé. Il est donc possible d'utiliser ces paramètres pour effectuer des traitements spécifiques au niveau du serveur (typiquement, traiter les données issues d'un formulaire). Au niveau du navigateur, ils ne servent habituellement pas et n'ont aucun impact direct sur la page, c'est pour ça qu'il n'existe actuellement aucun mécanisme natif pour les extraire facilement comme c'est le cas par exemple en PHP avec la superglobale $_GET.

    A vrai dire, comme sekaijin, je ne sais pas trop ce que tu cherches à faire, mais ça ne semble pas avoir beaucoup de sens, sans parler d'une utilité elle aussi assez douteuse.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 571
    Points : 97
    Points
    97
    Par défaut
    Dans ma page html, j'ai le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     <script type="text/javascript" language="javascript">
        function getLocationSearch()
        {
       		var myfunction = window.location.search.split('?')[1]
    		myfunction = myfunction + '()'
      		if (myfunction != "") {eval(myfunction)}
        }
      </script>
     
    <body onload="getLocationSearch();">
    Donc lors du chargement de la page, on appelle la fonction qu'il y a derrière le ?
    Au final
    lorsque l'on va sur www.monsite.fr/mapage.html?Line1

    la fonction Line1() est executé

    Coté Viadeo ou LinkedIn, lors de la publication d'un message, ils utilises la balise <Title> pour mettre un texte sur l'image
    Et je souhaiterai que le message corresponde à la fonction appelé Line1 et non à la page mapage.html
    Et il me semblait que la meilleure solution était de modifier dynamiquement le <Title>

    Mais apparemment ce n'est pas jouable ....
    Tanpis pour moi

    Merci quand même pour votre aide.

    Thais

  10. #10
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Quelle horreur !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function getLocationSearch(){
    	var myfunction = window.location.search.split('?')[1];
      	if (window[myfunction]) {window[myfunction]();}
    }
    Quant à la faisabilité de ce que tu demandes, avec JavaScript, c'est non.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  11. #11
    Membre habitué
    Femme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2010
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2010
    Messages : 166
    Points : 138
    Points
    138
    Par défaut
    - à mon avis ce que tu veux faire n'est pas quelque chose de bien utile ou de beau, je peux par contre te suggérer de ne rien mettre après le ? de ton url pour la sécurité et l'esthétique de ton application ( d'ailleurs si le clic va donner sur un upload d'un fichier ben le nom du fichier qui s'affichera sera déjà explicite),
    - par contre si c'est utile pour toi: tu peux envoyer un POST en background et traiter ensuite ton Line récupéré,
    - si utile pour les visiteurs: tu peux mettre dans ta page car les visiteurs risquent de ne pas remarquer ton url.

Discussions similaires

  1. [PHP-JS] Extraire le contenu des balises title
    Par renaud26 dans le forum Langage
    Réponses: 5
    Dernier message: 24/10/2006, 15h23
  2. [Tableaux] Balise title d'une page web
    Par Invité dans le forum Langage
    Réponses: 4
    Dernier message: 12/01/2006, 18h25
  3. [CSS] modification balise body
    Par usbeck dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 11/10/2005, 13h56
  4. Récupérer le contenu de la balise title
    Par roots dans le forum Langage
    Réponses: 2
    Dernier message: 11/09/2005, 16h17
  5. Problème formatage dans balise title / alt
    Par jflebegue dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 09/12/2004, 15h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo