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 :

Syntaxe script / document.write()


Sujet :

JavaScript

  1. #1
    Membre régulier
    Inscrit en
    Mai 2002
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 117
    Points : 97
    Points
    97
    Par défaut Syntaxe script / document.write()
    Bonjour,

    Je suis désolé c'est sans doute très simple mais je ne suis pas un expert loin de là, je veux juste protéger l'adresse mail de contact d'un site et en bricolant un peu j'arrive à ce bout de code qui fonctionne pour le calcul de l'adresse mais je n'arrive pas à associer la mise en forme avec !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <script type:"text/Javascript">
    var part1 = "contact";
    var part2 = Math.pow(2,6);          //@ chr 64 = 2^6
    var part3 = String.fromCharCode(part2);
    var part4 = "domaine"
    var part5 = String.fromCharCode(46, 99, 111, 109);          // .com
    var part6 = part1 + part3 + part4 + part5;
    document.write("<p style=\"text-align: center;\">" + "<span color=\"#ffffff\" style=\"color: #ffffff;\">" + "<a href=" + "mai" + "lto" + ":" + part6 + ">" + part6 + "</a></span></p>");
    </script>
    Merci d'avance

  2. #2
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mai 2014
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Arménie

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2014
    Messages : 388
    Points : 578
    Points
    578
    Par défaut
    Bonsoir,
    Il me semble que votre code, quoiqu'un peu vieillot sur la forme, fonctionne parfaitement. Voici ce que j'aurais écrit :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <div style="text-align: center;">
    <script>
    var part1 = "contact";
    var part2 = Math.pow(2,6);          //@ chr 64 = 2^6
    var part3 = String.fromCharCode(part2);
    var part4 = "domaine"
    var part5 = String.fromCharCode(46, 99, 111, 109);          // .com
    var part6 = part1 + part3 + part4 + part5;
    document.write('<a href="mailto:'+part6+'">'+part6+'</a>');
    </script>
    </div>

  3. #3
    Membre régulier
    Inscrit en
    Mai 2002
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 117
    Points : 97
    Points
    97
    Par défaut
    Bonsoir

    Et merci de votre réponse.

    J'ai essayé mais c'est pareil, en fait quand je disais que la mise en forme n'était pas prise en compte c'est que le lien reste bleu par défaut et non blanc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div style="text-align: center;" color="#ffffff" style="color: #ffffff;">

  4. #4
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mai 2014
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Arménie

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2014
    Messages : 388
    Points : 578
    Points
    578
    Par défaut
    Ah, je crois avoir compris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.write('<a style="color: #fff;" href="mailto:'+part6+'">'+part6+'</a>');

  5. #5
    Membre régulier
    Inscrit en
    Mai 2002
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 117
    Points : 97
    Points
    97
    Par défaut


    Ca fonctionne merci !!
    Je me casse toujours la tête sur ce genre de problèmes qui ne devraient pas en être ...

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    document.write ...


    jette plutot un oeil sur cet article...
    https://www.developpez.net/forums/d1...te-javascript/
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mai 2014
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Arménie

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2014
    Messages : 388
    Points : 578
    Points
    578
    Par défaut
    Bonsoir,

    La méthode document.write() présente une particularité : Elle permet d'écrire directement dans le flux de la page, pas besoin de mettre en place un identifiant de balise. Ce peut être, dans certains cas, une propriété intéressante...

    Je ne sais pas si cette méthode, jugée obsolète par certains, est encore reconnue par l'ensemble des navigateurs.

  8. #8
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Oui, elle est toujours reconnue par les navigateurs, et c’est un obstacle majeur à l’amélioration des performances : parce que cette fonction existe, et parce que le moteur n’a pas moyen de savoir a priori si elle va être utilisée ou non dans un script, toute balise de script est bloquante par défaut (en l’absence d’attribut async ou defer), ce qui interromp l’analyse du code HTML et empêche le chargement parallèle des fichiers de script.

    Bien plus que la question de décider si c’est une bonne pratique de codage ou non, c’est ce problème de performances qui est la principale raison pour laquelle document.write() est fustigée aujourd’hui.

    Quant à la nécessité de recourir à un identifiant de balise, querySelector permet de s’en passer dans de nombreux cas ; on peut également s’aider de document.currentScript.

    Edit : moi j’aurais fait comme ça :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <script type="text/javascript"> "use strict";
    // ouverture d’un bloc pour isoler les constantes
    {
      const part1 = "contact";
      const part2 = Math.pow(2, 6);                         //@ chr 64 = 2^6
      const part3 = String.fromCharCode(part2);
      const part4 = "domaine"
      const part5 = String.fromCharCode(46, 99, 111, 109); // .com
      const part6 = part1 + part3 + part4 + part5;
     
      const $a = document.createElement("a");
      $a.style = `
        display: block;
        text-align: center;
        color: white;
      `;
      $a.href = "mai" + "lto" + ":" + part6;
      $a.textContent = part6;
     
      document.currentScript.insertAdjacentElement("afterend", $a);
    }
    </script>
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Est-il possible d'integrer un <script> avec un document.write
    Par PierreVeuillez dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 04/03/2011, 08h23
  2. Comment insérer un script de plusieurs lignes dans document.write()?
    Par Little Rey dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 28/06/2010, 10h05
  3. Syntaxe document.write et dhtml
    Par totoche dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 27/10/2008, 14h09
  4. [DOM] document.write( "<script>" )
    Par Merfolk dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 15/09/2008, 20h23
  5. Script/noscript - Pas de document.write()
    Par yusherboy dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 31/08/2006, 13h20

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