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 :

window.onload et scroll


Sujet :

JavaScript

  1. #1
    Membre expert
    Avatar de Samuel_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2012
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 376
    Points : 3 177
    Points
    3 177
    Billets dans le blog
    1
    Par défaut window.onload et scroll
    Hello,

    j'insère un script JS dans une page web.

    Voici un bout de code :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    window.onload = function() {
         SP.SOD.executeFunc('SP.js', 'SP.ClientContext', maFunction);
         return;
    };

    Ma fonction est bien exécuté, en revanche j'ai des problèmes.
    Le script ne renvoi aucune erreur dans la console. Mais le scroll de la page n'est plus présent !

    J'ai la même erreur avec :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    window.onload = function() {
         return;
    };

    Help me ....

    Samuel_

    Ne pas oublier mais aussi

    "L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai "

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Bonjour,

    L'instruction return; toute seule en fin de fonction ne sert à rien. Et à première vue, il n'y a aucun rapport entre ce bout de script et le scrolling de ta page. Mais mon petit doigt me dit que ce n'est pas le seul script que tu utilises sur ta page et que tu les a tous les deux déclenchés avec window.onload. Sauf qu'en réaffectant window.onload, la première affectation est perdue. Pour gérer de multiples déclencheurs sur un seul évènement, utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    window.addEventListener("load", function(){
    //ton code ici
    });
    One Web to rule them all

  3. #3
    Membre expert
    Avatar de Samuel_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2012
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 376
    Points : 3 177
    Points
    3 177
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par SylvainPV Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    window.addEventListener("load", function(){
    //ton code ici
    });
    En fait je rajoute du code JS avec une balise <script> dans une page web dont je ne connais pas le script JS de base

    Ton explication tient la route.
    En revanche en testant ton bout de code, j'ai l'erreur suivante "L'objet ne gère pas la propriété ou la méthode addEventListener" ...

    Ne pas oublier mais aussi

    "L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai "

  4. #4
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Tu es sur quel navigateur ? IE6 ?

    Si addEventListener n'est pas supporté, ça complique les choses. Tu dois greffer ton code dans le window.onload existant, mais si ce n'est pas du code à toi, ça risque d'être compliqué...

    Essaie ce polyfill qui vient compléter le support de addEventListener sur les vieux IE : https://gist.github.com/2864711/9462...d888aac5e1748e
    One Web to rule them all

  5. #5
    Membre expert
    Avatar de Samuel_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2012
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 376
    Points : 3 177
    Points
    3 177
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par SylvainPV Voir le message
    Tu es sur quel navigateur ? IE6 ?
    IE9 pourtant ...
    Mais ça fonctionne très bien sous Firefox !

    Citation Envoyé par SylvainPV Voir le message
    Essaie ce polyfill qui vient compléter le support de addEventListener sur les vieux IE : https://gist.github.com/2864711/9462...d888aac5e1748e
    Je vais regarder dans cette direction.

    Merci pour le coup de main !

    Ne pas oublier mais aussi

    "L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai "

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Points : 1 418
    Points
    1 418
    Par défaut
    Bonjour,

    Citation Envoyé par Samuel_ Voir le message
    IE9 pourtant ...
    Attention au mode(s) de compatibilité avec IE9, des fois on crois être en IE9 mais il est en mode QUIRK ou autre.

    devYan.


    devYan.

  7. #7
    Membre expert
    Avatar de Samuel_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2012
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 376
    Points : 3 177
    Points
    3 177
    Billets dans le blog
    1
    Par défaut
    Problème résolu !

    Voici le bout de code qui m'a aidé

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (window.addEventListener) {  // W3C DOM       
       window.addEventListener('load',maFunc);    
    } else { // IE DOM 
    window.attachEvent('onload', maFunc);    
    }

    Ne pas oublier mais aussi

    "L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai "

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

Discussions similaires

  1. [Prototype] Ajax.Updater et window.onload
    Par fongus dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 22/08/2008, 21h28
  2. un autre façon que window.onload
    Par Invité dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/07/2008, 10h18
  3. window.onload lancement de fonction et href
    Par debutantasp dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 28/04/2008, 16h06
  4. window.onload et frame
    Par remsou dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/03/2008, 13h17
  5. [IE]window.onload ne fonctionne pas
    Par banzzai dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 18/05/2006, 11h24

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