JS--页面加载完毕后执行

原文网址:JS--页面加载完毕后执行_IT利刃出鞘的博客-CSDN博客

简介

说明

        本文用示例介绍JavaScript如何在页面加载完毕之后执行函数。

页面加载完毕主要有两个事件:

  1. DOMContentLoaded事件:页面的DOM加载并解析完毕之后触发,不会等待CSS、图片、子框架加载完成。
  2. onload事件:页面所有资源(包括DOM树、CSS、图片、第三方框架等)加载完毕时触发。

浏览器现象

DOMContentLoaded事件:在Overview和Waterfall上用一条蓝色竖线标记,并且在Summary以蓝色文字显示确切的时间。

onload事件:在Overview和Waterfall上用一条红色竖线标记,在Summary也会以红色文字显示确切的时间。

方案1:原生JS

法1:DOMContentLoaded 事件

        DOMContentLoaded 事件:页面的DOM加载并解析完毕之后触发,不会等待CSS、图片、子框架加载完成。

        jquery中使用的$(document).ready(function(){}); 实际上监听的就是 DOMContentLoaded 事件。

function domReady(fn){
    //对于现代浏览器,对DOMContentLoaded事件的处理采用标准的事件绑定方式
    if (document.addEventListener) {
        document.addEventListener("DOMContentLoaded", fn, false);
        // 不能这样写:window.onDOMContentLoaded
    } else {
        IEContentLoaded(fn);
    }

    //IE模拟DOMContentLoaded
    function IEContentLoaded (fn) {
        var doc = window.document;
        var done = false;
        //只执行一次用户的回调函数init()
        var init = function () {
            if (!done) {
                done = true;
                fn();
            }
        };

        (function () {
            try {
                // DOM树未创建完之前调用doScroll会抛出错误
                d.documentElement.doScroll('left');
            } catch (e) {
                //延迟再试一次~
                setTimeout(arguments.callee, 50);
                return;
            }
            // 没有错误就表示DOM树创建完毕,然后立马执行用户回调
            init();
        })();

        //监听document的加载状态
        doc.onreadystatechange = function() {
            // 如果用户是在domReady之后绑定的函数,就立马执行
            if (doc.readyState == 'complete') {
                doc.onreadystatechange = null;
                init();
            }
        }
    }
}

法2:onload事件

onload事件:页面所有资源(包括DOM树、CSS、图片、第三方框架等)加载完毕时触发。

window.onload = function(){
	...
}

或者

window.addEventListener('load',  function(){
	...
})

方案2:jQuery

法1:ready()函数

说明

页面的DOM加载并解析完毕之后触发,不会等待CSS、图片、子框架加载完成。

实际上监听的就是 DOMContentLoaded 事件。

代码

写法一:标准写法

$(document).ready(function(){
	...
});

写法二:简写

$(function(){
	....
})

法2:load()函数

页面所有资源(包括DOM树、CSS、图片、第三方框架等)加载完毕时触发。

实际上监听的就是 onload 事件。

$(window).load(function(){
	...
});

其他网址

JS 进阶(5) DOM操作:dom加载完毕执行js、创建节点、遍历节点、查找节点、删除节点_poorpenguin的博客-CSDN博客

  • 33
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 你可以使用 JavaScript 来获取页面加载完毕后的内容。下面是一种方法: 1. 在 HTML 页面中,添加一个 JavaScript 函数,该函数将在页面加载完毕后运行: ``` <body onload="myFunction()"> ``` 2. 在 JavaScript 中,使用 `document.getElementById` 或其他 JavaScript 方法获取你想要的元素: ``` function myFunction() { var element = document.getElementById("myElement"); // Do something with the element } ``` 3. 如果你想获取整个页面的内容,可以使用 `document.body.innerHTML` 方法: ``` function myFunction() { var content = document.body.innerHTML; // Do something with the content } ``` 请注意,如果页面包含大量内容,获取整个页面的内容可能会导致性能问题。 ### 回答2: 在PHP中,无法直接获取页面加载完毕后的内容,因为PHP是在服务器端执行的语言,所以它在页面加载完毕后就已经成了任务并将结果返回给客户端。但是,我们可以通过其他方式获取页面加载完毕后的内容。 一种方法是使用JavaScript中的Ajax技术来异步请求服务器端获取最新的内容。在页面加载成后,可以使用JavaScript事件监听器来触发Ajax请求,从而获取更新后的页面内容。通过这种方式,我们可以在页面中动态显示最新的内容。 另一种方法是使用JavaScript的Document对象的readyState属性来检测页面加载状态。当readyState属性的值为"complete"时,表示页面已经加载完毕。在PHP中,可以通过JavaScript内嵌在HTML代码中的方式,使用document.readyState属性来判断页面是否加载完毕,当页面加载完毕后,我们可以执行一些后续的操作,比如获取页面中的元素内容等。 总之,PHP本身无法直接获取页面加载完毕后的内容,但可以通过JavaScript前端技术实现在加载完毕后获取最新的内容。 ### 回答3: 在PHP中,无法直接获取页面加载完毕后的内容,因为PHP是服务器端语言,负责生成HTML页面并发送给客户端。一旦PHP代码生成HTML页面并发送给客户端,它的任务就结束了,无法直接感知客户端页面加载的状态。 不过,可以通过一些其他的方法来实现类似的功能。其中一个常见的方法是使用JavaScript来检测页面加载状态。在页面加载完毕后,通过JavaScript发送一个异步请求给服务器端,请求需要的内容。服务器端可以使用PHP处理这个请求,并返回所需的内容。 具体实现步骤如下: 1. 在页面中嵌入带有JavaScript代码块的HTML文件。 2. 在JavaScript代码块中,使用window.onload事件监听页面加载事件。 3. 当页面加载成后,使用XMLHttpRequest对象发送异步请求给服务器端。 4. 服务器端接收到该请求后,使用PHP代码处理请求,并返回所需的内容。 5. JavaScript代码通过XMLHttpRequest对象接收到服务器端返回的内容,处理并显示在页面上。 需要注意的是,这种方法依赖于客户端的浏览器支持JavaScript,并且需要在页面加载成后执行相应的操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT利刃出鞘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值