begin process at 2012 05 29 07:45:28
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript et le navigateur

 > 

Problème de compatibilité

 > 

Conflit onload et window.onload


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Conflit onload et window.onload

vendredi 6 mars 2009 à 18:05:18 | Conflit onload et window.onload

Minotor458

Bonjour à tous,

Malgré plusieurs années à surfer sur codes-sources je n'ai jamais participé à la communauté mais aujourd'hui j'ai besoin d'un coup de main pour un problème entre 2 petits scripts js qui ne s'entendent pas. Je commence seulement depuis quelques semaines à bricoler le js pour un peu plus d'interactivité sur un futur site.

Avec plusieurs morceaux de code récupérés sur des tutoriels et quelques longues heures de recherche, j'ai pu réaliser le slider (Distance canapé-télé au milieu à gauche de la page http://www.astuce-roulette.com/plasma/ ) tout fonctionne parfaitement mais dernierement j'ai voulu permettre à ma barre de recherche de s'afficher au bout quelques instant sur ma page pour qu'elle soit mise en avant. (Vous pouvez tester l'activation/désactivation dans le menu sur le lien Recherche).

Malheuresement pour arriver à se résultat j'ai du ajouter un onload sur le body (<body onload="accueil();">) qui éxecute une fonction préalablement chargée ( http://www.astuce-roulette.com/plasma/js/recherche_accueil.js ), cela fonctionne mais le slider, lui, ne fonctionne plus.

D'après mes recherches sur google et cie, la partie du slider posant problème est celle qui fait appel à la fonction window.onload :

[code]
function carpeAddLoadEvent(func)
{
        var oldonload = window.onload;
        if (typeof window.onload != 'function') {
           
            window.onload = func;
        }
        else {
            window.onload = function() {
                oldonload();
                func();
               
            };
        }
}
[/code]

Voici l'adresse du slider ( http://www.astuce-roulette.com/plasma/js/slider.js ).

J'ai actuellement supprimé le onload="' du body pour des raisons pratiques mais j'aimerai pouvoir faire fonctionner les deux en maintenant, donc je fait appel à vous, si vous avez une idée pour corriger ce problème, je vous en serai très reconnaissant.

Merci,
Arnaud.
samedi 7 mars 2009 à 09:43:10 | Re : Conflit onload et window.onload

Bul3

Membre Club
Bonjour,

ben normalement (?) ça devrait le faire ce que tu nous mets

même  s'il vaudrait mieux (?) utiliser
attachEvent() pour IE et 
addEventListener() pour les autres navigateurs

ou tout simplement
window.onload=function()
{ accueil();
appel au "slider"();
}

mais il y a peut-être des incompatibilités entre ces fonctions.... va savoir???

NavigateursQuelques Explications
Chrome
contrôler page actuelle / Options pour développeurs
/ Console Javascript
FireFox
Outils / Console d'erreurs
et mieux : télécharger FireBug
Internet
Explorer
activer le deboggage : Outils/options Internet/Avancés
dans la liste, sous "Navigation" : décocher
o Afficher une notification de chaque erreur de script
o Désactiver le débogage de Scripts (Internet Explorer)
et mieux : télécharger le Debogger IE
voir aussi : DebugBar et Companion JS
K-Meleon
Outils / Console d'erreurs
Opera
Outils / Avancé / Console d'erreurs
Safari
Debug / Show JavaScript Console
° modifier Fichier com.apple.Safari.plist situé dans le
répertoire : Support:\Documents and Settings\utilisateur
\Application Data\Apple Computer\Safari\Preferences\
y ajouter <key>IncludeDebugMenu</key>
<true/>


Cordialement [mon Site] [M'écrire] Bul
samedi 7 mars 2009 à 19:07:00 | Re : Conflit onload et window.onload

Minotor458

Bonjour,

Tout d'abord merci beaucoup de consacrer du temps à mon problème.

Donc j'ai modifié ma fonction d'appel du slider :

function carpeAddLoadEvent(func)
{
        var oldonload = window.onload;
        if (typeof window.onload != 'function') {
           
            window.onload = func;
            window.onload = accueil;
        }
        else {
            window.onload = function() {
                oldonload();
                func();
                accueil();
               
            };
        }
}


Effectivement la fonction accueil() fonctionne  le slider par contre ne fonctionne toujours pas, aucune erreur avec FireBug (appart si il faut aller dans une rubrique spéciale pour lire l'erreur ?). Comment puis-je trouver l'origine du conflit ??
dimanche 8 mars 2009 à 08:35:54 | Re : Conflit onload et window.onload

Bul3

Membre Club

            window.onload = func;
            window.onload = accueil;
       
ben là, seul accueil est appelé.
func ? c'est quoi ? c'est la "fonction slider" ou pas ?

entre nous,  c'est ta page, tu sais s'il y a déjà une fonction dans le onload ! non  ?

ça devrait le faire, sans rien d'autres :
window.onload=function()
{ appel de la fonction slider qu'on ne connait pas();
  accueil();
}

dimanche 8 mars 2009 à 13:17:13 | Re : Conflit onload et window.onload

Minotor458

Seul accueil() fonctionne :

  <script type="text/javascript">
        window.onload=function()
        {
          carpeAddLoadEvent(carpeInit);
          accueil();
        }
        </script>

carpeAddLoadEvent(carpeInit); c'était l'appel qui était tout en bas de mon fichier slider.js

Pour ce qui ai de func(), honnêtement je ne sais pas, c'était dans la script de base que j'ai récupéré, et je n'ai pas trouvé de lien avec le reste du script ( http://www.astuce-roulette.com/plasma/js/slider.js ).

Une autre idée ?



dimanche 8 mars 2009 à 13:30:37 | Re : Conflit onload et window.onload

Bul3

Membre Club
Réponse acceptée !
func c'est une variable javascript dans la fonction carpeAddEent


<script type="text/javascript">
        window.onload=function()
        { carpeInit();
          accueil();
        }
</script>

et regarde la balise body... il y a un onload ?

dimanche 8 mars 2009 à 13:39:30 | Re : Conflit onload et window.onload

Minotor458

Ah merci beaucoup, cela fonctionne :)

J'ai encore beaucoup à apprendre en JS et je vais commencer par simplifier toutes ces fonctions de mon slider...

PS : Est-il plus intéréssant de faire quelques chose du genre : onload="carpeInit(); accueil();" ??

Merci,
Arnaud.
dimanche 8 mars 2009 à 13:56:31 | Re : Conflit onload et window.onload

Bul3

Membre Club
>>..onload=
ce serait donc dans la balise body
aujourd'hui "ce n'est plus trop à la mode"
sinon, c'est "pareil"
@+



Cette discussion est classée dans : recherche, window, js, slider, onload


Répondre à ce message

Sujets en rapport avec ce message

Pb de chargement d'un fichier *.js à cause d'un onload [ par Squallou ] Hello tout le monde !J'ai un chtiot problème !J'ai du javascript sur ma page : une fonction qui doit obligatoirement se lancer avec un onload dans la Modifier l'aspect d'une fenetre au démarrage sur un "onload" [ par JefffK ] Bonjour,Je voudrais pouvoir modifier l'aspect d'une fenetre c'est à dire : enlever barre de navigation, d'adresse etc.. mais sur un évènement onload ( window.onload et document.write => effacement de la page [ par cydelic ] Bonjour, J'aimerai savoir pourquoi quand on fait un window.onload et ensuite un document.write la page en court est effacer ? Ex: window.onload=Init Recherche codeur en JS [ par Kaalysta ] Coucou Ce n'est jamais facile de se présenter face à une grande assemblée, surtout lorsqu'en plus on a quelque chose à demander, alors s'il vous plait Recherche dans un tableau js [ par dridri ] Bonjour,Voila j'ai une question qui m'embète pas mal. Je voudrais savoir s'il était possible de faire une recherche dans un tableau js contenant des d Appel de plusieurs fonction JS avec windows.onload [ par frlobe ] Bonjour j'ai un script d'autocompletion en JS qui fonctionne très bien. Il s'appelle de cette façon: [code=js]{body} [/code] Et la fonction JS initial [HTML - JS. . .] Recherche sur le site [ par HACKANDROID ] [size=200][color=gray]Bonjour, J'ai une question : Comment crée un option de recherche en ajax ou normal (Page de résultat)... Voila quelque chose Cherche Menu Rétractable en JS [ par kopax ] Bonjour, Je cherche un script me permettant de faire un menu rétractable. J'aurai besoin d'un petit bouton en haut a droite de ma page, et lorsque je Probleme pour afficher un itinéraire api google map [ par sentenzai ] Bonjour, Voici mon problème, je souhaiterais récupérer les coordonnées de longitude et de latitude de l'utilisateur. Puis créer l'itinéraire google m Paramétrage dans le head d'un nom de fichier externe (.js ou .css) à inclure [ par philou8 ] Bonjour, J'aimerais savoir si dans le head de ma page html,je peux définir un chemin d'accès qui sera ensuite repris pour récupérer un fichier externe


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,811 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales