cari

Rumah  >  Soal Jawab  >  teks badan

javascript - Semua fail js yang diperkenalkan oleh halaman, setiap fail js mempunyai window.onload Kadangkala, fail js tertentu tidak dilaksanakan.

1. Perkenalkan a.js dan b.js pada halaman A; tiada masalah dengan kedua-dua a.js dan b.js menggunakan window.onload
Tetapi saya juga memperkenalkan a.js dan c.js pada halaman B, dan kadangkala .js seolah-olah ia tidak dilaksanakan sama sekali
Tetapi saya terus meletakkan kandungan window.onload dalam a.js ke dalam onload c.js dalam halaman B, dan ia dilaksanakan dengan betul apa yang sedang berlaku? ?

習慣沉默習慣沉默2753 hari yang lalu930

membalas semua(5)saya akan balas

  • phpcn_u1582

    phpcn_u15822017-06-26 10:57:06

    window.onload hanya digunakan sekali, jadi akan berlaku konflik apabila berbilang js menggunakannya pada masa yang sama.
    Penyelesaian

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

    balas
    0
  • 黄舟

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

    Saya mencubanya Tetingkap boleh diikat beberapa kali, tetapi ia hanya akan berkuat kuasa pada kali terakhir Anda boleh membandingkan dua contoh saya di bawah untuk memahami situasi anda.

        //方式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();
                }
            }
        }

    balas
    0
  • 大家讲道理

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

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

    • Jika perlu windowonload事件进行多次绑定,建议使用addEventListener:

    window.addEventListener('load', function() { ... }, false);
    • Nota, gunakan attachEvent而非addEventListener dalam ID:

    window.attachEvent('onload', function() { ... });
    • Juga ambil perhatian, addEventListener中用的是'load',而attachEvent中用的是'onload'.

    balas
    0
  • 世界只因有你

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

    Kaedah window.onload() hanya boleh diikat sekali Jika anda mengikat beberapa kali, hanya yang terakhir akan berkuat kuasa

    balas
    0
  • 代言

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

    window.onload hanya akan memanggil yang terakhir, dan yang sebelumnya akan ditimpa.

    balas
    0
  • Batalbalas