`

[转]页面所有元素加载完成之后执行某个js函数

阅读更多
在页面所有元素加载完成之后执行某个js函数


做项目的时候可能会遇到这种情况:
       一个JSP页面中import了一个目录文件(menu.jsp),而且每个页面的<body>中都定义了onload事件,那么在此定义window.onload函数的时候可能会不生效或者多个onload之间覆盖的现象.
       有的朋友肯定会说用jQuery的$().ready(function(){}),或者(function(){})这种方式, 其实这个函数和javascript的onload事件是由区别的,那么来看看他们的区别:
他们的主要的区别有两点:

执行时机
window.onload方法是在网页中的所有的元素(包括元素的所有关联文件)都完全加载到浏览器之后才执行。而通过jQuery中的$(document).ready()方法注册的事件处理程序,只要在DOM完全就绪时,就可以调用了,比如一张图片只要<img>标签完成,不用等这个图片加载完成,就可以设置图片的宽高的属性或样式等。
$(document).ready()方法可以多次使用而注册不同的事件处理程序,而window.onload一次只能保存对一个函数的引用,多次绑定函数只会覆盖前面的函数。
先来看window.onload方法在一个页面上注册两次会是什么样的结果:

function one(){  
    alert("one");  
}  
function two(){  
    alert("two");  
}  
window.onload = two ;  
window.onload = one ;  



上面的代码运行后,会弹出“one”。

再来看看$(document).ready()方法分两次调用会是什么结果。

function one(){  
    alert("one");  
}  
function two(){  
    alert("two");  
}  
$(document).ready(function(){  
    one();  
});  
$(document).ready(function(){  
    two();  
});  

上面的代码运行后,会分别弹出“one”和“two”。
好了,比较完了,也就是说window.onload和jQuery的方式都无法实现,所以有了下面的实现:

var $$ = function(func){  
            if (document.addEventListener) {  
                window.addEventListener("load", func, false);  
            }  
            else if (document.attachEvent) {  
                window.attachEvent("onload", func);  
            }  
        }  
          
        $$(function(){  
            show();  
        }) 

使用的时候只要这样:
$$(function(){...此处加上需要执行的内容...});即可...

转载:http://lgscofield.iteye.com/blog/1884352
分享到:
评论

相关推荐

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

    在网页开发中,确保JavaScript代码在HTML页面完全加载完毕后再执行是至关重要的,因为这可以避免因元素未加载而导致的错误。本文将介绍两种方法来实现在HTML页面加载完成后运行JavaScript代码。 首先,我们来看传统...

    页面加载事件、页面定时任务

    通过监听这个事件,开发者可以在页面加载完成后执行一系列的操作,比如初始化页面元素、设置样式等。 **页面定时任务**则是指在网页中按照预定的时间间隔重复执行某个函数或方法的功能。这在数据更新、实时监控等...

    vuejs实现ready函数加载完之后执行某个函数的方法

    在Vue中,我们通常会遇到在数据完全加载并渲染到DOM后执行某些特定函数的需求,例如在本例中,我们需要在表格元素(tds)全部显示在页面上之后,对表格中的选择框添加监听事件。 Vue.js 提供了一个叫做 `Vue....

    JavaScript判断页面加载完之后再执行预定函数的技巧

    load事件只有在整个页面完全载入之后才会触发,因此在load事件处理函数中编写的JavaScript代码,可以确保在所有HTML元素加载完成之后执行。window对象的load事件的写法如下: ```javascript window.addEventListener...

    Jquery 在页面加载后执行的几种方式

    对于初始化函数`initPublish()`的调用,我们可以将其直接放在`$(document).ready()`方法中,这样可以保证在DOM元素加载完成之后,立即执行该函数。通常,我们会将`$(document).ready()`中的代码放在HTML文档的最底部...

    js判断图片加载完成后获取图片实际宽高的方法

    此外,这段代码可以在页面加载时执行,也可以在需要时动态执行,比如响应某个用户的操作。只要确保在图片加载完成之后再获取其尺寸即可。 在上述代码的基础上,如果希望减少代码量,可以进一步简化。例如,将图片...

    详解Vue.js在页面加载时执行某个方法

    在Vue.js中,我们需要在页面加载时执行某些初始化操作或数据获取,这可以通过利用Vue实例的生命周期钩子函数来实现。接下来,我们将详细讨论如何在Vue.js中实现在页面加载时执行特定的方法。 首先,Vue实例的生命...

    js函数一览表 javaScript 自定义函数一览表

    - **用途**:了解DOM结构对于操作页面元素至关重要。 5. **获取元素属性值** - **语法**:`document.getElementById("元素ID").name(value)` - **用途**:通过ID选择器获取指定元素,并设置或获取其属性值。 6....

    Chrome插件开发--后台监控网页并自动刷新,点击页面元素

    3. **内容脚本(Content Script)**:这些脚本会注入到用户访问的网页中,可以直接操作DOM,实现对网页元素的控制,如自动刷新和点击页面元素。 4. **浏览器动作(Browser Action)和页面动作(Page Action)**:...

    页面加载完后自动执行一个方法的js代码

    页面加载完毕后自动执行一个JavaScript函数是一种在网页开发中常见的需求,用以确保在页面内容完全可用之后才执行特定的操作。当网页中的资源如图片、样式表等都已完全加载,并且DOM树构建完成时,我们就可以通过...

    js滚动延时加载

    4. **数据请求**:当决定加载某个元素时,可能需要从服务器获取数据。这通常通过Ajax请求(XMLHttpRequest或fetch API)实现。请求成功后,将返回的数据插入到页面相应的位置。 5. **动画效果**:为了提供更流畅的...

    基于JavaScript实现一定时间后去执行一个函数

    - **动画效果**:`setTimeout()`常用于创建动画效果,通过在每次函数执行后更新页面元素的状态,模拟连续动作。 - **网络请求超时**:在发送HTTP请求时,可以设置超时机制,如果在规定时间内没有收到响应,就取消...

    jsp页面中的代码执行加载顺序介绍.docx

    ### JSP页面中的代码执行加载顺序详解 #### 一、引言 JSP(Java Server Pages)是一种基于Java技术的动态网页技术标准,它通过将动态生成的内容嵌入到静态HTML页面中,使得Web应用程序能够生成动态变化的内容。在...

    JS常用函数(笔记)

    - `document.getElementsByTagName()`: 根据标签名获取页面元素集合。 5. **事件处理函数**: - `document.onclick`, `document.ondblclick`: 分别处理单击和双击事件。 - `window.status`: 设置或获取浏览器...

    js 某个页面监听事件渲染完毕的时间.docx

    在JavaScript中,了解页面加载和元素渲染的时间对于优化用户体验至关重要。`window.onload`和`DOMContentLoaded`是两个关键的事件,用于监听页面加载的不同阶段。它们各自有其应用场景和优势。 首先,`window....

    c#代码与javascript函数的相互调用

    本文将深入探讨C#代码与JavaScript函数的相互调用机制,解析如何在ASP.NET环境中利用这两种语言的优势,构建高效、动态的Web应用。 ### C#调用JavaScript #### 直接插入JavaScript代码 在C#的ASP.NET页面中,可以...

    JS如何实现在页面上快速定位(锚点跳转问题)

    为了实现平滑滚动效果,JQuery提供了一个方便的函数animate(),可以配合scrollTop选项实现滚动到页面中某个元素位置的动画效果。具体做法是使用jQuery选择器选取目标元素,然后使用animate()方法,并将目标元素的top...

    js函数setTimeout延迟执行的简单介绍

    在实际的Web开发中,setTimeout函数常常被用于多种场景,比如实现页面加载后延时显示元素、进行网络请求的超时处理、制作简单的动画效果等。合理地利用setTimeout,可以提升用户的交互体验,优化页面的性能表现。 ...

    JS实现页面数据懒加载

    为了解决这个问题,可以将所有需要懒加载的元素存储在一个数组中,然后遍历数组,在每个元素的可视状态变化时进行处理。 2. 使用`offsetTop`可能在某些情况下不准确,尤其是在页面有其他动态效果或定位元素时。可以...

    layUI ajax加载html页面后重新渲染的方法

    另外,如果在动态加载的内容中包含表单元素,而这些表单元素需要使用layUI的表单模块进行美化或者增强功能,比如radio或者checkbox的美化和切换效果,那么在元素添加到页面之后,我们需要调用`layui.form.render()`...

Global site tag (gtag.js) - Google Analytics