关于JSP中<body onload="fun()">body标签中onload中函数不执行问题
问题描述:
在一个页面中,我们经常会初始化一下数据,而且会在指定的DOM元素初始化数据,这时候我们就会使用<body onload="fun()">来加载我们的数据。onload指的是在所有的DOM元素都加载完成才会执行JS函数,这为我们初始化动态的加载数据提供很大的帮助。但是有时候我们会发现,<body onload="fun()">中的fun()函数有时候会不执行。下面分析一下onload不执行的原因和解决方法。
问题解决方案:
1.页面加载时就出现错误。
这种是代码错误,可能是在加载DOM元素就报错,导致无法执行onload。这时候需要处理代码,查看代码哪里出错了。
2.页面一直在加载
我们在浏览器的右下角会浏览器正在加载数据,有时间,由于网络原因(加载慢)或着找不到资源,然后页面就会一致加载,这时候onload可能就无法执行了。因为,onload是在加载所有DOM元素才会执行的。这时候也是处理代码,找到无法加载的资源,删掉或者找其他方式加载。
3.<body onload="fun()">body这个标签被覆盖、销毁(重点)
在写JSP页面时,我们经常会用到类似于<jsp:include page="body.jsp"></jsp:include>来包含一个新页面。但是就在这时候,body.jsp是不会有<body>标签的,会被自动销毁。下面举个例子。
这是main.jsp源代码
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<html>
<head>
<title>onload不加载</title>
</head>
<body >
<p>这是主界面</p>
<jsp:include page="body.jsp"></jsp:include>
</body>
</html>
这是body.jsp源代码
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<html>
<head>
<title>body页面</title>
</head>
<body >
<p>这是body页面</p>
</body>
</html>
然后运行之后看效果,打开F12开发工具

我们只看见<p>标签,说明body.jsp的<body>标签被自动销毁。
找到问题后就要想解决办法。其实我们发现,onload其实就是window.onload的另一种表现方式,原理都是一样的,这时候就使用window来实现加载数据了.
<scripy type="text/javascrip">
function fun(){
alert("Hello World!");
} window.onload=function(){
fun();
}
</script>
这样在加载页面后执行fun()函数了,效果和<body onload="fun()">一样。
关于JSP中<body onload="fun()">body标签中onload中函数不执行问题的更多相关文章
- Unity3d中的Awake()、OnEnable()、Start()等默认函数的执行顺序和生命周期
Awake()在MonoBehavior创建后就立刻调用,在脚本实例的整个生命周期中,Awake函数仅执行一次:如果游戏对象(即gameObject)的初始状态为关闭状态,那么运行程序,Awake函数 ...
- PHP通用的XSS攻击过滤函数,Discuz系统中 防止XSS漏洞攻击,过滤HTML危险标签属性的PHP函数
XSS攻击在最近很是流行,往往在某段代码里一不小心就会被人放上XSS攻击的代码,看到国外有人写上了函数,咱也偷偷懒,悄悄的贴上来... 原文如下: The goal of this function ...
- Servlet 工程 web.xml 中的 servlet 和 servlet-mapping 标签
本文转载自 陈蒙的博客 最近在学习JavaEE轻量级框架,对于servlet-mapping中的url-partten标签以及网页访问时的执行顺序不是很清楚,搜索了很多遍终于找到了这篇博文(搜索也是个 ...
- struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input
原文地址:struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input jsp页面 1 function dosearch() {2 if ($(&q ...
- 【java】Servlet 工程 web.xml 中的 servlet 和 servlet-mapping 标签
摘录某个工程的 web.xml 文件片段: 访问顺序为1—>2—>3—>4,其中2和3的值必须相同. url-pattern 标签中的值是要在浏览器地址栏中输入的 url,可以自己命 ...
- JSP进阶 之 SimpleTagSupport 开发自定义标签
绝大部分 Java 领域的 MVC 框架,例如 Struts.Spring MVC.JSF 等,主要由两部分组成:控制器组件和视图组件.其中视图组件主要由大量功能丰富的标签库充当.对于大部分开发者而言 ...
- JSP第七篇【简单标签、应用、DynamicAttribute接口】
为什么要用到简单标签? 上一篇博客中我已经讲解了传统标签,想要开发自定义标签,大多数情况下都要重写doStartTag(),doAfterBody()和doEndTag()方法,并且还要知道SKIP_ ...
- JSP第六篇【自定义标签之传统标签】
为什么要使用自定义标签? JSTL标签库只提供了简单的输出等功能,没有实现任何的HTML代码封装,并且某些复杂类型转换,或者逻辑处理的时候,JSTL标签库完成不了,需要自定义标签! 编写自定义标签的步 ...
- 为JSP写的一套核心标签
为JSP写的一套核心标签, 有了这套标签, 根本不需要自定义标签了 (1) 准备 需要standard.jar,jstl.jar两个jar包,放入Tomcat 6.0/lib目录中(或者是/WEB-I ...
随机推荐
- hive 调优总结
一.join优化 做join之前对数据进行预处理,减少参加join的数据量,把数据量少的表放入内存中,制作map端的join 应该将条目少的表/子查询放在 Join 操作符的左边.原因是在 Join ...
- 2016 DTCC(中国数据库技术大会)
上周去参加了2016 DTCC(数据库技术大会),会议总共持续3天,议题非常多,我这里搜集了最新的公开的PPT内容,有兴趣的同学可以下载看看,PPT合集下载链接为:http://pan.baidu.c ...
- 初学JavaScript
什么是 JavaScript? JavaScript 被设计用来向 HTML 页面添加交互行为. JavaScript 是一种脚本语言(脚本语言是一种轻量级的编程语言). JavaScript 由数行 ...
- JAVA NIO Channel
Basic: 多数通道都是链接到开发的文件描述符的.Channel类提供维持平台独立性的抽象过程. 通道是一种途径,访问和操作操作系统,缓冲区是数据操作点: Channel类继承结构图: 通过 ...
- background-attachment属性进阶
前提是定义了background-image属性,然后用background-attachment来指明背景图的位置是固定于视口的,还是随着包含块移动的.可简单理解为定义背景图片随滚动轴的移动方式. ...
- 连载《一个程序猿的生命周期》-《发展篇》 - 3.农民与软件工程师,农业与IT业
相关文章:随笔<一个程序猿的生命周期>- 逆潮流而动的“叛逆者” 15年前,依稀记得走出大山,进城求学的场景.尽管一路有父亲的陪伴,但是内心仍然畏惧.当父亲转身离去.准备回到 ...
- Linux文本查看及处理.md
cat cat命令的用途是连接文件或标准输入并打印.这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用. 主要功能 一次显示整个文件:cat ...
- 完整部署CentOS7.2+OpenStack+kvm 云平台环境(5)--问题解决
一.[root@openstack-server ~]# nova listERROR (CommandError): You must provide a username or user id v ...
- .NET程序员细数Oracle与众不同的那些奇葩点
扯淡 距上次接触 Oracle 数据库已经是 N 年前的事了,Oracle 的工作方式以及某些点很特别,那会就感觉,这货就是一个奇葩!最近重拾记忆,一直在折腾 Oracle,因为 Oracle 与众不 ...
- Firefox默认英文修改中文
对于firefox,中文还是看着顺眼,为了自己的顺心.动起手来,自力更生,丰衣足食! 01.确定Linux的firefox版本 firefox -v 02.下载对应版本的中文语言包 http://ft ...