为什么js代码在HTML文件里可以运行,写在js文件里被html文件调用之后却是无法运行:
1.立即执行的JS代码会受位置的影响。
2.假如你把JS外部引用放入HEAD里,而你在该JS文件中试图直接访问DOM中的一个BODY的子元素,就可能产生错误,因为该JS在执行时,浏览器还没有准备好BODY的DOM。
3.如果是这样,你可以把JS引用移到所有它要访问元素标签之后,这样就不会出错了。
JS:
JS即Javascript,Javascript是一种由Netscape的LiveScript发展而来的脚本语言,主要目的是为了解决服务器终端语言,比如Perl,遗留的速度问题。当时服务端需要对数据进行验证,由于网络速度相当缓慢,只有28.8kbps,验证步骤浪费的时间太多。于是Netscape的浏览器Navigator加入了Javascript,提供了数据验证的基本功能。
程序是没有错。理论上是执行的,但是执行的方式和位置或许导致了你出现的这种情况。
最快的测试方式是:
打开google浏览器->F12打开调试工具->找到console
将代码黏贴值箭头所指的位置 然后按回车。
--------------------------------------------------------
再来分析你的情况:
如果你的代码是直接放在<script></script>标签之间,是在页面加载到这个标签的时候会执行的。
如果你是放在某个function 之内,在浏览器加载的时候是不会理解执行的。而是在调用这个function的时候再执行。
应该是window对象没有onload事件,你加错地方了吧,应该是加载document对象上的,window.document.onload = function(){}
不然你的js代码都不会执行,这样js代码才会在页面加载完成后执行。