两种方法实现在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 相关文章推荐
js内存泄露的几种情况详细探讨
May 31 Javascript
代码分析jQuery四种静态方法使用
Jul 23 Javascript
node.js插件nodeclipse安装图文教程
Oct 19 Javascript
js中获取时间new Date()的全面介绍
Jun 20 Javascript
微信开发 消息推送实现代码
Oct 21 Javascript
jquery.onoff实现简单的开关按钮功能(推荐)
May 24 jQuery
Vue中的作用域CSS和CSS模块的区别
Oct 09 Javascript
原生js实现移动端Touch轮播图的方法步骤
Jan 03 Javascript
微信小程序授权登录解决方案的代码实例(含未通过授权解决方案)
May 10 Javascript
微信小程序与公众号卡券/会员打通的问题
Jul 25 Javascript
vue中 数字相加为字串转化为数值的例子
Nov 07 Javascript
在vue中使用vuex,修改state的值示例
Nov 08 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 柱状图实现代码
2009/12/04 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
2016/01/11 PHP
PHP实现求连续子数组最大和问题2种解决方法
2017/12/26 PHP
PHP生成推广海报的方法分享
2018/04/22 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
javascript中怎么做对象的类型判断
2013/11/11 Javascript
JavaScript排序算法之希尔排序的2个实例
2014/04/04 Javascript
Node.js实现简单聊天服务器
2014/06/20 Javascript
javascript实现图像循环明暗变化的方法
2015/02/25 Javascript
JavaScript实现图片轮播的方法
2015/07/31 Javascript
如何使用jquery修改css中带有!important的样式属性
2016/04/28 Javascript
setTimeout函数的神奇使用
2017/02/26 Javascript
利用jquery正则表达式在页面验证url网址输入是否正确
2017/04/04 jQuery
angularjs2中父子组件的数据传递的实例代码
2017/07/05 Javascript
浅谈Angular2 ng-content 指令在组件中嵌入内容
2017/08/18 Javascript
JavaScript贪吃蛇小组件实例代码
2017/08/20 Javascript
ndm:NPM的桌面GUI应用程序
2018/10/15 Javascript
重学 JS:为啥 await 不能用在 forEach 中详解
2019/04/15 Javascript
浅谈laytpl 模板空值显示null的解决方法及简单的js表达式
2019/09/19 Javascript
vue商城中商品“筛选器”功能的实现代码
2020/07/01 Javascript
[01:51]2018年度CS GO最具人气外援-完美盛典
2018/12/16 DOTA
Python简单连接MongoDB数据库的方法
2016/03/15 Python
python 性能优化方法小结
2017/03/31 Python
Python简单定义与使用二叉树示例
2018/05/11 Python
Python+opencv+pyaudio实现带声音屏幕录制
2019/12/23 Python
PYQT5 vscode联合操作qtdesigner的方法
2020/03/24 Python
Vrbo英国:预订度假屋
2020/08/19 全球购物
华为C++笔试题
2014/08/05 面试题
AJax面试题
2014/11/25 面试题
毕业生找工作的求职信范文
2013/12/24 职场文书
车间安全生产标语
2014/06/06 职场文书
公司任命书模板
2014/06/06 职场文书
基层党员对照检查材料
2014/09/24 职场文书
电力安全学习心得体会
2016/01/18 职场文书
你真的了解PHP中的引用符号(&)吗
2021/05/12 PHP
MySQL导致索引失效的几种情况
2022/06/25 MySQL