javascript - Bolehkah kod js digunakan dalam badan, tetapi tidak di kepala?
伊谢尔伦
伊谢尔伦 2017-05-19 10:24:41
0
5
704

Saya menulisnya dalam fail js yang berasingan dan menggunakan window.onload=function(){} untuk mengelakkan masalah pemuatan
1 Sisipkan kod terus dari badan dan ia berfungsi
2 tidak boleh digunakan; padam window.onload=function(){} dalam fail, dan ia boleh digunakan
3, dan ia tidak boleh digunakan sama ada ia dimasukkan terus ke dalam kod atau fail ;
4 Konsol tidak melaporkan ralat dan boleh dinyahpepijat Cari fail js ini dalam penyemak imbas.
Saya rasa terdapat masalah dengan memuatkan halaman. Saya tidak dapat mengetahui secara khusus masalahnya. . .
Siarkan kod

    图片库   

我的图片库

百度一下你就知道 图片库封面

封面:

Kod js adalah seperti ini

window.onload=function(){ function showPic(whichpic){ var source=whichpic.getAttribute('href'); var place_holder=document.getElementById('placeholder'); place_holder.src=source; var p=document.getElementById("alt"); var text=whichpic.getAttribute('title'); p.firstChild.nodeValue=text; } var lis=document.getElementsByTagName('a'); for(i=0;i
伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

membalas semua (5)
曾经蜡笔没有小新

Pertama sekali, saya ingin membuat cadangan: sebaiknya jangan masukkan aksara Cina dalam penamaan fail, dan secara amnya jangan bermula dengan nombor Terdapat banyak piawaian penamaan yang boleh anda cari sendiri.

Mengenai masalah:
Tiada ralat dilaporkan dalam konsol dan fail js boleh ditemui dalam penyahpepijat: Selagi anda menggunakan window.onload=function(){} code>, kod js Ia pasti dilaksanakan Tidak kira sama ada anda meletakkannya di kepala atau badan, atau sama ada anda memperkenalkannya dalam bentuk fail, kod di dalamnya akan dilaksanakan.控制台没报错且能在调试器中找到这个js文件:只要你使用了window.onload=function(){},js代码是肯定执行的,不论你是放在head里面还是body里面,也不论你是不是以文件的形式引入的,里面的代码都会执行。

从body里插入js文件,不能用;文件中删掉window.onload=function(){},能用:html中的onclick="showPic(this)",这个showPic函数是定义在全局作用域下面的,不能用window.onload包裹,当你包裹的时候,showPic的作用域就处于onload这个函数里面了,在全局作用域下找不到showPic,所以点击时,showPic函数里面的代码没有执行,其他的js代码是执行的,你看看a标签里面已经添加上了onclick等代码。

写在head里,无论直接插入代码还是文件,都不能用

Masukkan fail js daripada badan, tetapi ia tidak boleh digunakan padam window.onload=function(){} dalam fail, tetapi ia boleh digunakan: onclick="showPic(; this)", fungsi showPic ini ditakrifkan di bawah skop global dan tidak boleh dibalut dengan window.onload. Apabila anda membalutnya, skop showPic berada di dalam fungsi onload. ShowPic tidak boleh ditemui dalam global skop. , jadi apabila diklik, kod dalam fungsi showPictidak dilaksanakan, tetapi kod js lain dilaksanakan Anda boleh melihat bahawa onclick dan kod lain telah ditambahkan pada teg a.

ditulis di kepala dan tidak boleh digunakan sama ada dimasukkan terus ke dalam kod atau fail
: Apabila ia datang kepada pertanyaan dom, pokok dom belum dibina pada masa ini, jadi teg tidak boleh. dipersoalkan. Kod js pertanyaan DOM yang ditulis di kepala mesti dibalut dengan window.onload, tetapi anda mesti mengekstrak fungsi showPic dan meletakkannya dalam skop global supaya ia boleh berjalan seperti biasa.

@张东东 Jawapannya betul, tetapi dia menggunakan kaedah acara mengikat elemen.onclick (kod yang anda ulas pada masa ini, fungsi showPic boleh didapati dalam rantai skop, jadi ia boleh dilaksanakan). @stephenhuang Bolehkah kod showPic yang ditulis dalam onload dijalankan?
    迷茫

    skrip hendaklah diletakkan di bawah badan

        Blog  
    

    id

    Perkara pertama yang anda perlu tahu ialah:

    Fail HTML dilaksanakan secara atas ke bawah, tetapi susunan css dan javascript yang diperkenalkan adalah berbeza Apabila css diperkenalkan dan dimuatkan, program masih dijalankan ke bawah, dan apabila skrip benang terganggu, menunggu Program akan terus dilaksanakan hanya selepas pelaksanaan skrip selesai.

    Jadi, kebanyakan perbincangan dalam talian adalah meletakkan skrip skrip selepas , supaya penjanaan DOM tidak akan ditangguhkan dan disekat kerana pelaksanaan skrip skrip yang lama, mempercepatkan kelajuan memuatkan halaman .

    Tetapi anda tidak boleh meletakkan semua skrip selepas badan, kerana pelaksanaan beberapa kesan halaman memerlukan pemuatan secara dinamik beberapa skrip js terlebih dahulu. Jadi skrip ini hendaklah diletakkan sebelum .

    Jadi, saya rasa prinsip peletakan skrip ialah "js untuk kelas pelaksanaan kesan halaman hendaklah diletakkan sebelum badan dan tindakan, interaksi dan js dipacu peristiwa boleh diletakkan selepas badan."

      巴扎黑

      Kerana ia diletakkan di kepala dan js dimuat turun apabila teg js ditemui Penyajian dom belum selesai lagi dan js tidak boleh mendapatkan elemen dom pada masa ini.

        左手右手慢动作

        Pertama sekali, skrip boleh diletakkan di kepala, dan banyak laman web menggunakannya dengan cara ini, sebagai contoh, apabila halaman dibuka, adalah perlu untuk menentukan sama ada ia adalah telefon bimbit atau kaedah PC JS, dll.
        Kedua, sebagai jawapan kepada soalan anda, saya membuat sedikit pengubahsuaian dan ujian boleh dijalankan. Hanya bahagian js sahaja yang telah ditukar, bahagian html tidak diubah.

        window.onload=function(){

        function showPic(whichpic){ var source=whichpic.getAttribute('href'); var place_holder=document.getElementById('placeholder'); place_holder.src=source; var p=document.getElementById("alt"); var text=whichpic.getAttribute('title'); p.firstChild.nodeValue=text; } var lis=document.getElementsByTagName('a'); for(i=0;i

        }

        Jadi mungkin kod js ditulis dengan salah.

          phpcn_u1582

          Terima kasih banyak, kini saya akhirnya faham apa yang berlaku! Cadangan itu sangat berguna dan saya menerimanya.
          Saya secara tidak sengaja menulisnya di kawasan jawapan, tetapi sejak saya menulisnya, mari tulis sesuatu yang berguna dan tambahkan beberapa baris kod
          Let lis[i].setAttribute('onclick','showPic(this);return false;' ); Menulis seperti ini juga akan berfungsi:

          addLoadEvent(pics) function addLoadEvent(func){ var oldonload=window.onload; if(typeof window.onload!='function'){window.onload=func;} else{window.onload=function(){oldonload();func;} } } //上面这段代码为了使所有函数共享window.onload事件 function pics(){ var lis=document.getElementsByTagName('a'); for(i=0;i
            Muat turun terkini
            Lagi>
            kesan web
            Kod sumber laman web
            Bahan laman web
            Templat hujung hadapan
            Tentang kita Penafian Sitemap
            Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!