javascript - Kann JS-Code im Körper verwendet werden, aber nicht im Kopf?
伊谢尔伦
伊谢尔伦 2017-05-19 10:24:41
0
5
702

Ich habe es in eine separate js-Datei geschrieben und window.onload=function(){} verwendet, um Ladeprobleme zu vermeiden
1. Fügen Sie die js-Datei aus dem Body ein kann nicht verwendet werden; löschen Sie window.onload=function(){} in der Datei, und es kann verwendet werden
3. Es kann nicht verwendet werden, unabhängig davon, ob es direkt in den Code oder die Datei eingefügt wird
4. Die Konsole meldet keinen Fehler und kann debuggt werden. Suchen Sie diese js-Datei im Browser.
Ich glaube, es liegt ein Problem beim Laden der Seite vor. Ich kann nicht sagen, was das Problem konkret ist. . .
Posten Sie den Code

    图片库   

我的图片库

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

封面:

Der js-Code sieht so aus

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伐。

Antworte allen (5)
曾经蜡笔没有小新

首先提一个建议:关于文件命名最好不要夹杂中文,一般也不以数字开头,有很多命名规范自己可以找找看看。

关于问题:
控制台没报错且能在调试器中找到这个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里,无论直接插入代码还是文件,都不能用:涉及到dom查询,这个时候dom树还没构建完成,所以查询不到a标签。写在head里面的dom查询js代码要用window.onload包裹一下,但是你要把showPic这个函数提出来放在全局作用域下,这样才能正常运行。

@张冬冬 回答的没毛病,但是他用的是element.onclick绑定事件的方法(你注释掉的代码),这个时候,在作用域链上是能找到showPic函数的,所以能执行。

@stephenhuang 写在onload里面的showPic代码能运行?

    迷茫

    script应该放在body下面

        Blog  
    

    id

    首先要了解到的是:

    html文件是自上而下的执行方式,但引入的css和javascript的顺序有所不同,css引入执行加载时,程序仍然往下执行,而执行到