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 :

Safari réagit comme si ce code n'existait pas


Sujet :

JavaScript

  1. #1
    Gunner4902
    Invité(e)
    Par défaut Safari réagit comme si ce code n'existait pas
    Bonsoir,

    Tout d'abord je tiens à dire que je teste Safari pour Windows. Que j'ai vérifié et que le JS est bien activé et qu'il fonctionne pour des fonctions simples.

    Toutefois j'ai un soucis avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    echo utf8_encode("<div id=\"img\"><img src=\"".$file[$fi]."\" $attr name=\"image\" /></div>");
    <script type="text/javascript">
    document.image.style.marginLeft = (document.image.width*-1/2);
    document.image.style.marginTop = (-1*(document.image.height/2));
    </script>
    allié avec la feuille CSS, qui précise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #img {left:50%; top:50%;}
    celà est censé afficher l'image dynamique (gestion aléatoire via PHP), au milieu de la page… c'est d'ailleurs ce qui se passe sous Firefox, Opera, IE6 et IE7… oui mais sous Safari, l'image commence à 50%… donc comme si le JS était désactivé… à quoi celà est-il dû ?

  2. #2
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementsByName('image')[0].style.marginLeft
    en css # c'est pour les id ...

    je te conseillerais du coup de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('image').style.marginLeft
    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 !

  3. #3
    Gunner4902
    Invité(e)
    Par défaut
    Ok, j'ai donc fait comme tu m'as dit (si j'ai bien compris)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo utf8_encode("<div id=\"img2\"><img src=\"".$file[$fi]."\" $attr name=\"nom_image\" /></div>");
    document.getElementById('img2').style.marginTop = (-1*(document.nom_image.height/2));
    document.getElementById('img2').style.marginLeft = (document.nom_image.width*-1/2);
    Je viens de tester, et Safari ne prend toujours pas le code…
    et si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('img2').style.marginTop = (-1*(document.getElementById('img2')/2));
    Ni Opera ni Safari ne positionnent correctement l'image…

  4. #4
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    j'ai dit ça moi ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo utf8_encode("<div id=\"img2\"><img src=\"".$file[$fi]."\" $attr name=\"nom_image\" /></div>");
    j'avais cru avoir dit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo utf8_encode('<div id="img2"><img src="'.$file[$fi].'" name="nom_image" /></div>');
    avec
    et
    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 !

  5. #5
    Gunner4902
    Invité(e)
    Par défaut
    Autant pour moi.

    Bon je récapépète :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    echo utf8_encode('<div id="img2"><img src="'.$file[$fi].'" name="nom_image" /></div>');
    <script type="text/javascript">
      document.getElementById('img2').style.marginTop = (-1*(document.nom_image.height/2));
      document.getElementById('img2').style.marginLeft = (document.nom_image.width*-1/2);
    </script>
    CSS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #img2 {left:50%; top:50%;}
    Avec ce code, ça ne fonctionne pas sous Opera ni Safari… (Y'a p'têt un truc que j'ai pas encore compris… )

  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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    ils n'aiment pas les margins negatifs ...?
    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
    Gunner4902
    Invité(e)
    Par défaut
    Avec le premier code, Opera fonctionnait bien, donc ça n'est pas dû aux marges négatives à mon avis…

  8. #8
    Gunner4902
    Invité(e)
    Par défaut
    J'ai remis le code d'origine, avec l'amélioration de la syntaxe que tu as faite… et Safari gagne par abandon ce match… mais me perds comme utilisateur

  9. #9
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    Juste par curiosité essaye de mettre en html un div avec son style en duravec les valeurs de margins que tu essayes de lui attribuer, et regarde le resultat sous Safary ...
    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 !

  10. #10
    Gunner4902
    Invité(e)
    Par défaut
    Si je mets en dur le code CSS, ça fonctionne très bien…

    J'ai meme testé d'encapsuler le CSS dans le code aléatoire de mon image (PHP) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<style type=\"text/css\">body{width:100%; text-align:center;}</style>";
    et l'image se trouve bien centrée… alors que si je mets le même code hors PHP, l'image reste alignée en haut à gauche de la page, comme s'il n'y avait pas de CSS…

    A mon avis, d'après cette expérience, Safari ne me semble pas tout à fait au point…

Discussions similaires

  1. Un div qui réagit comme une fenêtre
    Par Thedahu dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 31/07/2013, 17h03
  2. Problème avec l'autocompletion: Espace réagit comme Entree
    Par Chekov dans le forum Windows Forms
    Réponses: 0
    Dernier message: 14/02/2009, 12h10
  3. Réponses: 3
    Dernier message: 01/12/2008, 14h50
  4. Problème XOR qui réagit comme un OR
    Par Pymm dans le forum ASP
    Réponses: 10
    Dernier message: 13/10/2005, 09h56

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