recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - Tous les fichiers js introduits par la page, chaque fichier js a window.onload. Parfois, un certain fichier js n'est pas exécuté.

1. Présentez a.js et b.js à la page A ; il n'y a aucun problème avec a.js et b.js en utilisant window.onload
Mais j'introduis également a.js et c.js à la page B, et parfois, un .js, c'est comme s'il n'était pas exécuté du tout
Mais j'ai directement mis le contenu de window.onload dans a.js dans le onload de c.js dans la page B, et il est exécuté correctement, je ne sais pas. que se passe-t-il? ?

習慣沉默習慣沉默2753 Il y a quelques jours931

répondre à tous(5)je répondrai

  • phpcn_u1582

    phpcn_u15822017-06-26 10:57:06

    window.onload n'est utilisé qu'une seule fois, il y aura donc des conflits lorsque plusieurs js l'utiliseront en même temps.
    Solution

    1.用jQuery使用ready()方法替换onload
    2.在window.onload中一次加载所有js文件,例:window.onload=function(){function(a);function(b);} 

    répondre
    0
  • 黄舟

    黄舟2017-06-26 10:57:06

    Je l'ai essayé. La fenêtre peut être liée plusieurs fois, mais elle ne prendra effet que la dernière fois. Vous pouvez comparer mes deux exemples ci-dessous pour comprendre votre situation.

        //方式1:
        window.onload=function () {
            console.log("1");
        }
        window.onload=function () {
            console.log("2");
        }
    //    输出2
    //    -------------------------------分割线
    //    方式2:
        function fn1() {
            console.log("1");
        }
        function fn2() {
            console.log("2");
        }
        addEventLoad(fn1);
        addEventLoad(fn2);
        //输出1  2
        function addEventLoad(fn){
            var oldFn = window.onload;
            if(typeof window.onload != 'function'){
                window.onload = fn;
            }else{
                window.onload = function(){
                    oldFn();
                    fn();
                }
            }
        }

    répondre
    0
  • 大家讲道理

    大家讲道理2017-06-26 10:57:06

    • Passer window.onload = function() { ... }方法设置的事件,后面的window.onload值会覆盖掉前面的,所以,只有最后一次生效。(这个和调用a = 1; a = 2; a =3; est une vérité)

    • Si nécessaire windowonload事件进行多次绑定,建议使用addEventListener :

    window.addEventListener('load', function() { ... }, false);
    • Remarque, utilisez attachEvent而非addEventListener dans ID :

    window.attachEvent('onload', function() { ... });
    • A noter également, addEventListener中用的是'load',而attachEvent中用的是'onload'.

    répondre
    0
  • 世界只因有你

    世界只因有你2017-06-26 10:57:06

    La méthode window.onload() ne peut être liée qu'une seule fois. Si vous liez plusieurs fois, seule la dernière prendra effet

    .

    répondre
    0
  • 代言

    代言2017-06-26 10:57:06

    window.onload n'appellera que le dernier et les précédents seront écrasés.

    répondre
    0
  • Annulerrépondre