两种方法实现在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 相关文章推荐
javascript下判断一个元素是否存在的代码
Mar 05 Javascript
JavaScript使用DeviceOne开发实战(四)仿优酷视频应用
Dec 02 Javascript
一波JavaScript日期判断脚本分享
Mar 06 Javascript
老生常谈JQuery data方法的使用
Sep 09 Javascript
vue学习笔记之指令v-text &amp;&amp; v-html &amp;&amp; v-bind详解
May 12 Javascript
Angular.js ng-file-upload结合springMVC的使用教程
Jul 10 Javascript
分析javascript中9 个常见错误阻碍你进步
Sep 18 Javascript
VUE前后端学习tab写法实例
Aug 06 Javascript
小程序Request的另类用法详解
Aug 09 Javascript
Vue项目接入Paypal实现示例详解
Jun 04 Javascript
ant design vue datepicker日期选择器中文化操作
Oct 28 Javascript
VUE实现吸底按钮
Mar 04 Vue.js
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
ThinkPHP实现将SESSION存入MYSQL的方法
2014/07/22 PHP
Centos6.5和Centos7 php环境搭建方法
2016/05/27 PHP
微信红包随机生成算法php版
2016/07/21 PHP
页面中body onload 和 window.onload 冲突的问题的解决
2009/07/01 Javascript
setTimeout和setInterval的区别你真的了解吗?
2011/03/31 Javascript
jquery focus(fn),blur(fn)方法实例代码
2011/12/16 Javascript
随窗体滑动的小插件sticky源码
2013/06/21 Javascript
JS文本框追加多个下拉框的值的简单实例
2013/07/12 Javascript
JavaScript调用客户端的可执行文件(示例代码)
2013/11/28 Javascript
.NET微信公众号开发之创建自定义菜单
2015/07/16 Javascript
简单理解JavaScript中的封装与继承特性
2016/03/19 Javascript
动态的9*9乘法表效果的实现代码
2016/05/16 Javascript
angular4 如何在全局设置路由跳转动画的方法
2017/08/30 Javascript
基于Vue过渡状态实例讲解
2017/09/14 Javascript
Vue2.0 事件的广播与接收(观察者模式)
2018/03/14 Javascript
详解JavaScript中操作符和表达式
2018/09/12 Javascript
vue中使用protobuf的过程记录
2018/10/26 Javascript
浅谈Vue3 Composition API如何替换Vue Mixins
2020/04/29 Javascript
举例讲解Python的lambda语句声明匿名函数的用法
2016/07/01 Python
Python 正则表达式的高级用法
2016/12/04 Python
python安装oracle扩展及数据库连接方法
2017/02/21 Python
基于Python的XSS测试工具XSStrike使用方法
2017/07/29 Python
python 函数传参之传值还是传引用的分析
2017/09/07 Python
python对矩阵进行转置的2种处理方法
2019/07/17 Python
利用python计算时间差(返回天数)
2019/09/07 Python
django中使用事务及接入支付宝支付功能
2019/09/15 Python
匡威意大利官方商店 :Converse意大利
2018/11/27 全球购物
英国莱斯特松木橡木家具网上商店:Choice Furniture Superstore
2019/07/05 全球购物
《灰椋鸟》教学反思
2014/04/27 职场文书
艺术教育实施方案
2014/05/03 职场文书
求职自我推荐信
2014/06/25 职场文书
乡镇党员干部四风对照检查材料思想汇报
2014/09/27 职场文书
《这片土地是神圣的》教学反思
2016/02/16 职场文书
导游词之襄阳古城
2019/09/27 职场文书
html+css实现文字折叠特效实例
2021/06/02 HTML / CSS
源码分析Redis中 set 和 sorted set 的使用方法
2022/03/22 Redis