两种方法实现在HTML页面加载完毕后运行某个js


Posted in Javascript onJune 16, 2014

js方法:

<script type="text/javascript"> window.onload=function(){ 
var userName="xiaoming"; 
alert(userName); 
} 
</script>

以下为jQuery方法,需要引用jQuery文件。
<script type="text/javascript"> $(document).ready(function(){ 
var userName="xiaoming"; 
alert(userName); 
}); 
</script>

或者其简写
$(function(){ 
var userName="xiaoming"; 
alert(userName); 
});

当dom加载完就可以执行(比window.onload更早)。在同一个页面里可以多次出现.ready()

PS:两者的主要区别

window.onload:

当一个文档完全下载到浏览器中时,才会触发window.onload事件。这意味着页面上的全部元素对js而言都是可以操作的,也就是说页面上的所有元素加载完毕才会执行。这种情况对编写功能性代码非常有利,因为无需考虑加载的次序。、

$(document).ready{ }:

会在DOM完全就绪并可以使用时调用。虽然这也意味着所有元素对脚本而言都是可以访问的,但是,并不意味着所有关联的文件都已经下载完毕。换句话说,当HMTL下载完成并解析为DOM树之后,代码就会执行。

举一个例子:

假设有一个表现图库的页面,这种页面中可能会包含许多大型图像,我们可以通过jQuery隐藏、显示或以其他方式操作这些图像。如果我们通过onload页面设置界面,那么用户在能够使用这个页面之前,必须要等到每一幅图像都下载完成。更糟糕的是,如果行为稍微添加给哪些具有默认行为的元素(比如链接),那么用户的交互可能会导致意想不到的结果。然而当我们试用$(document).ready(){ }进行设置时,这个界面就会更早地准备好可用的正确行为。

使用$(document).ready(){ }一般来说都要优于试用onload事件处理程序,但必须要明确一点的是,因为支持文件可能还没有家在完成,所以类似图像的高度和宽度这样的属性此时不一定有效。

注:用把js放在页面底部的方法以及运用defer="defer" 的方法都是会出现问题的。最好使用上面的函数!

Javascript 相关文章推荐
jQuery 相关控件的事件操作分解
Aug 03 Javascript
js判断是否为数组的函数: isArray()
Oct 30 Javascript
JS获取下拉列表所选中的TEXT和Value的实现代码
Jan 11 Javascript
js调用浏览器打印模块实现点击按钮触发自定义函数
Mar 21 Javascript
使用JS实现jQuery的addClass, removeClass, hasClass函数功能
Oct 31 Javascript
jquery实现手机号码选号的方法
Jul 31 Javascript
JSONObject使用方法详解
Dec 17 Javascript
基于Bootstrap实现tab标签切换效果
Apr 15 Javascript
javascript对浅拷贝和深拷贝的详解
Oct 14 Javascript
深入理解vue.js中$watch的oldvalue与newValue
Aug 07 Javascript
浅谈vue项目用到的mock数据接口的两种方式
Oct 09 Javascript
JavaScript实现点击切换功能
Jan 27 Javascript
jquery实现在页面加载完毕后获取图片高度或宽度
Jun 16 #Javascript
jQuery实现简单网页遮罩层/弹出层效果兼容IE6、IE7
Jun 16 #Javascript
jquery网页回到顶部效果(图标渐隐,自写)
Jun 16 #Javascript
解决checkbox的attr(checked)一直为undefined问题
Jun 16 #Javascript
Javascript实现简单的富文本编辑器附演示
Jun 16 #Javascript
javascript操纵OGNL标签示例代码
Jun 16 #Javascript
jQuery图片切换插件jquery.cycle.js使用示例
Jun 16 #Javascript
You might like
php多文件上传功能实现原理及代码
2013/04/18 PHP
基于php下载文件的详解
2013/06/02 PHP
常见php数据文件缓存类汇总
2014/12/05 PHP
php实现ip白名单黑名单功能
2015/03/12 PHP
如何使用PHP给图片加水印
2016/10/12 PHP
JavaScript 学习技巧
2010/02/17 Javascript
JavaScript实现维吉尼亚(Vigenere)密码算法实例
2013/11/22 Javascript
Javascript中arguments和arguments.callee的区别浅析
2015/04/24 Javascript
JAVA四种基本排序方法实例总结
2015/07/24 Javascript
跟我学习javascript的undefined与null
2015/11/17 Javascript
AngularJS基础 ng-open 指令简单实例
2016/08/02 Javascript
利用JavaScript阻止表单提交的两种方法
2016/08/11 Javascript
判断横屏竖屏(三种)
2017/02/13 Javascript
详解React native全局变量的使用(跨组件的通信)
2017/09/07 Javascript
微信小程序实现倒计时补零功能
2018/07/09 Javascript
详解小程序如何避免多次点击,重复触发事件
2019/04/08 Javascript
通过实例了解Javascript柯里化流程
2020/03/03 Javascript
[02:51]2014DOTA2 TI小组赛总结中国军团全部进军钥匙球馆
2014/07/15 DOTA
Python开发编码规范
2006/09/08 Python
Python中的迭代器与生成器高级用法解析
2016/06/28 Python
Python读取一个目录下所有目录和文件的方法
2016/07/15 Python
利用Python yagmail三行代码实现发送邮件
2018/05/11 Python
opencv实现图片模糊和锐化操作
2018/11/19 Python
Django保护敏感信息的方法示例
2019/05/09 Python
Flask使用Pyecharts在单个页面展示多个图表的方法
2019/08/05 Python
tornado+celery的简单使用详解
2019/12/21 Python
Python 简单计算要求形状面积的实例
2020/01/18 Python
基于Python和C++实现删除链表的节点
2020/07/06 Python
HTML5地理定位实例
2014/10/15 HTML / CSS
购买英国原创艺术:Art Gallery
2018/08/25 全球购物
说出数据连接池的工作机制是什么?
2013/04/19 面试题
文秘人员工作职责
2014/01/31 职场文书
党员公开承诺书
2014/03/25 职场文书
遇事可以测出您的见识与格局
2019/09/16 职场文书
解析高可用Redis服务架构分析与搭建方案
2021/06/20 Redis
TypeScript 内置高级类型编程示例
2022/09/23 Javascript