2019独角兽企业重金招聘Python工程师标准>>>

浏览器执行顺序是从上到下,从左到右,遇到JavaScript脚本时要下载完脚本并执行才会继续加载其他的,如果脚本放在所执行函数用到的HTML对象前执行就会失效,因为当浏览器执行时,浏览器还没有加载好你用到的HTML对象,所以会报错(函数没写 window.onload的前提下):

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>javascript不执行</title>
</head>//在涉及的执行对象前面,对象未加载就执行了,也就是找不到对象,此时无效.(从上到下执行)
<script type="text/javascript">   alert(document.getElementById('one').innerHTML)
</script>
<body>//执行脚本的对象如下<div id="one">为什么呢?</div>
</body>
</html>

会报错:TypeError: document.getElementById(...) is null

解决办法:

  1. 脚本放在底部,或者放在脚本要执行时涉及到的HTML对象后面:

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>javascript不执行</title>
</head><body><div id="one">为什么呢?</div>//执行的对象如上//此时,执行对象先加载好了,然后再执行的script,此时有效.(从上到下执行)<script type="text/javascript">alert(document.getElementById('one').innerHTML)</script>
</body>
</html>

2.增加window.onload,然后随意放哪里

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>javascript不执行</title>
</head>
<script type="text/javascript">
//window.onload的意思是文档加载完后执行,这样就可以了window.onload=function start(){alert(document.getElementById('one').innerHTML)}</script>
<body><div id="one">为什么呢?</div>
</body>
</html>

本文只针对新手,不喜勿喷,有错误的地方请指正,(仅供参考,后果自负)

转载于:https://my.oschina.net/Cubicluo/blog/671338

JavaScript放头部不执行的情况(针对新手)相关推荐

  1. 触发Full GC执行的情况 以及其它补充信息

    除直接调用System.gc外,触发Full GC执行的情况有如下四种.1. 旧生代空间不足旧生代空间只有在新生代对象转入及创建为大对象.大数组时才会出现不足的现象,当执行Full GC后空间仍然不足 ...

  2. JavaScript中的立即执行函数

    原文链接 通常我们声明一个函数有以下几种方式: // 声明函数f1 function f1() {console.log("f1"); } // 通过()来调用此函数 f1();/ ...

  3. java强制fullgc_触发Full GC执行的情况 以及其它补充信息

    除直接调用System.gc外,触发Full GC执行的情况有如下四种. 1. 旧生代空间不足 旧生代空间只有在新生代对象转入及创建为大对象.大数组时才会出现不足的现象,当执行Full GC后空间仍然 ...

  4. Linux 将进程放入后台执行,解决网络,ssh断开导致进程结束(nohup, setsid, , disown)...

    Linux 将进程放入后台执行,解决网络,ssh断开导致进程结束(nohup,  setsid,  &, disown) 1.nohup 命令 我们知道,当用户注销(logout)或者网络断开 ...

  5. finally块不被执行的情况总结

    finally块的作用 通常用于处理善后工作.当try块里出现异常时,会立即跳出try块,到catch块匹配对应的异常,执行catch块里的语句.此时,可能在try块里存在打开的文件没关闭,连接的网络 ...

  6. mysql存储过程按区间_针对新手的MYSQL存储过程详解_CSDN_ChenF的博客-CSDN博客

    原文作者:橘左京i 原文标题:针对新手的MYSQL存储过程详解 发布时间:2021-02-22 10:03:18 一位爱好技术的橘右京的哥哥橘左京 前言:什么是存储过程?存储过程就像是一个接口,可以直 ...

  7. 如何用阿里云服务器建立个人网站(针对新手)

    首先,我们需要购买云服务器和域名. 域名建议用.com后缀的(一般五十左右),想要便宜的域名可以买.top等后缀的(一般几块钱). 点击这里购买域名 云服务器的话,根据自己的需要购买,如果只是简单的发 ...

  8. 为什么css放头部、js放尾部

    (题图:梵高-向日葵) 我们最开始学前端的时候都会看到教程在处理外部css,js的时候会将css放在header中,js放在body的最后.为什么要这样子处理,今天参考一些资料好好分析下. 为什么外链 ...

  9. 大话javascript 2期:执行上下文与执行上下文栈

    一.什么是执行上下文? 执行上下文(Execution Context): 函数执行前进行的准备工作(也称执行上下文环境) JavaScript在执行一个"代码段"之前,即解析(预 ...

最新文章

  1. 老男孩IT教育在线3期新学员司毅的计算机的基础知识
  2. Matlab-创建文字云
  3. bind9 配置说明
  4. babel css3新特性_2018年面试前端总结
  5. 细粒度权限控制 linux,利用docker插件实现细粒度权限控制
  6. tp摄像头的默认地址_tp-link怎么设置无线桥接 tp-link设置无线桥接方法【图文】...
  7. 西门子em235模块的功能_图文讲解PLC模拟量模块与传感器接线方法和注意事项
  8. connection timed out是什么意思_为什么Java中1000==1000为false而100==100为true?
  9. python 根据开头时间戳 合并两个文件
  10. python windows 消息通讯_如何使用python與windows中的事件/消息掛鈎
  11. 魔改部署自己专属的合成大西瓜(一:运行篇)
  12. idea创建j2ee_IntelliJ IDEA 2018 Community(社区版)创建J2EE项目+Tomcat9部署
  13. 一个基于verilog的FPGA 的LCD 1602 显示程序
  14. 电路图符号科普、整流电路、稳压电路、放大电路及调幅与检波电路和常见的基本电路
  15. matlab有限差分一维导热,一维导热方程-有限差分法-matlab实现.docx
  16. mysql中查询没有选修某两门课的_mysql-学生表32题
  17. 【动网论坛7.1 sp1 修改】-关于增加本帖地址[复制本页地址 粘贴]的修改方法...
  18. 山东大学软件学院2022数据库期末考试回忆版
  19. win10 uwp 使用 Microsoft.Graph 发送邮件
  20. 计算机与化学参考文献,实验学生论文,关于计算机对化学实验课的辅助作用相关参考文献资料-免费论文范文...

热门文章

  1. sealed关键字用法
  2. 使用WebBrowser与msHtml开发WinForms下的HtmlEditor控件
  3. python rbf神经网络_原创,基于径向基函数(RBF)神经网络RBF网络的举例应用!
  4. POJ2186 强联通
  5. 【Android 逆向】Android 逆向通用工具开发 ( Windows 平台运行的控制台应用程序类型 | 编译 Windows 平台运行的 Android 逆向程序 )
  6. 【设计模式】状态模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )
  7. 【Android 安装包优化】p7zip 源码交叉编译 Android 平台可执行程序 ( 下载 p7zip 源码 | 交叉编译 Android 中使用 7z 可执行程序 )
  8. 【数据挖掘】关联规则挖掘 Apriori 算法 ( 频繁项集 | 非频繁项集 | 强关联规则 | 弱关联规则 | 发现关联规则 )
  9. 【Android NDK 开发】JNI 引用 ( 全局引用 | NewGlobalRef | DeleteGlobalRef )
  10. top命令详析及排查问题使用演示