HTML中的javascript具体是什么时候调用? 是等整个页面内容都加载完毕时调用吗
2个回答
展开全部
①首先你应该明确浏览器是至上而下解析html文档中的代码的,从<!DOCTYPE>到</html>。其次,js代码是可以插在head或body中的。
②通过script标签可以包围内部js代码或引用外部js代码,并在html文档中script越靠前通常越先执行,前提是都设置了解析到时就立即执行。外部js文件中的代码 比 内嵌的js代码先执行。
③通过设置script元素的defer属性,可以设置包围其内的js代码是在html文档加载完后才执行该js代码,还是html代码加载到该js代码时,就执行。
当defer属性值为"true"或"defer"时(true比较标准),会在html文档加载后,才执行该js代码。反之,当其属性值为"false"(默认值)时,浏览器在加载html文档时,一解析到该js代码就执行。
④设置defer属性值为true后,script中没有包含在函数中(并该函数没被调用)的代码会立即执行,在其函数中则不会。
⑤onload事件函数是指html文档加载结束后执行的函数,当需要操作HTMl的DOM树时,通常应该在onload事件函数中操作,防止html还没加载完就执行js代码时,找不到指定的元素(标签)和内容。
onload标准来说与匿名函数配合使用:window.onload=function(){ html加载后做的事;}
【其实严谨来说,window.onload也可以实现在html文档显示前先执行js代码,但几乎没人这么干,因为这不是它的本意,可以称之为bug。】
我懂的暂时大致如此...
②通过script标签可以包围内部js代码或引用外部js代码,并在html文档中script越靠前通常越先执行,前提是都设置了解析到时就立即执行。外部js文件中的代码 比 内嵌的js代码先执行。
③通过设置script元素的defer属性,可以设置包围其内的js代码是在html文档加载完后才执行该js代码,还是html代码加载到该js代码时,就执行。
当defer属性值为"true"或"defer"时(true比较标准),会在html文档加载后,才执行该js代码。反之,当其属性值为"false"(默认值)时,浏览器在加载html文档时,一解析到该js代码就执行。
④设置defer属性值为true后,script中没有包含在函数中(并该函数没被调用)的代码会立即执行,在其函数中则不会。
⑤onload事件函数是指html文档加载结束后执行的函数,当需要操作HTMl的DOM树时,通常应该在onload事件函数中操作,防止html还没加载完就执行js代码时,找不到指定的元素(标签)和内容。
onload标准来说与匿名函数配合使用:window.onload=function(){ html加载后做的事;}
【其实严谨来说,window.onload也可以实现在html文档显示前先执行js代码,但几乎没人这么干,因为这不是它的本意,可以称之为bug。】
我懂的暂时大致如此...
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询