如何检测网页何时加载?

12 html javascript

我想编写一个应用程序来检测浏览器中何时加载页面,然后我应该能够在加载的网页上插入内容?谁知道如何做到这一点?

请注意,我应该可以在任何浏览器(Firefox/IE)中执行此操作.

我应该使用什么语言来帮助我这样做?

如何从外部应用程序中检测到这一点?

我该如何将其与浏览器集成?

tj1*_*111 24

你会用javascript来做这件事.如果你不知道如何使用JavaScript,我将通过推荐阅读一些 教程 第一.

在对javascript有基本了解之后,您可以使用该window.onload事件检测页面何时加载.

window.onload = function() {
  addPageContents();  //example function call.
}
Run Code Online (Sandbox Code Playgroud)

编辑:如果你想添加多个onload函数,而不是使用javascript库,你可以包装自己的onload hanlder.

window.whenloaded = function(fn) {
  if (window.onload) {
    var old = window.onload;
    window.onload = function() {
      old();
      fn();
    }
  } else {
    window.onload = fn;
  }
}
Run Code Online (Sandbox Code Playgroud)

  • +1,因为你没有说'只是使用jQuery' (12认同)
  • 你绝对应该使用`EventListener`而不是覆盖`window.onload`函数.覆盖此功能将禁用任何其他功能附加到它.我会建议@Luca Matteis的回答. (3认同)
  • 同上。这已经超出了玩笑的范畴了。“如何为变量赋值?” “使用 jQuery!” (2认同)
  • 为什么不使用原生的 `addEventListeners` 方法? (2认同)

Luc*_*eis 16

为什么不使用听众?

// Everything but IE
window.addEventListener("load", function() {
    // loaded
}, false); 

// IE
window.attachEvent("onload", function() {
    // loaded
});
Run Code Online (Sandbox Code Playgroud)

这样你可以添加任意数量的Listener,你也可以分离它们!removeEventListenerdetachEvent.


Geo*_*lly 13

比onload更好的是使用现有框架的功能,因为onload有时会在加载所有资源(图像等)后响应,而不仅仅是页面.

例如jQuery:

$(document).ready( function() {
    // do stuff
})
Run Code Online (Sandbox Code Playgroud)

  • +1因为你解释了库有更好的onload (2认同)

Har*_*hal 5

通过此有用的链接可以轻松解决您的查询:OnLoad W3School

如果要加载状态:

您可以使用简单的Javascript做到这一点

if (document.readyState == "complete") {
    alert("Your page is loaded");
}
Run Code Online (Sandbox Code Playgroud)

返回值:一个字符串,表示当前文档的状态。

五个值之一:

  • 未初始化-尚未开始加载
  • loading-正在加载
  • 已加载-已加载
  • 交互式-已加载足够的内容,用户可以与其进行交互
  • 完成-满载

有关更多详细信息,请访问W3Schools-document.readystate

希望这能清除您的想法。


小智 5

我知道关于这个主题有很多答案,但我相信最好的解决方案是多个解决方案的混合,以防您不知道脚本何时运行(在我的情况下,客户端可以粘贴脚本在窗口加载之前或该事件之后)。

if (document.readyState == "complete") {
    alert("Your page is loaded");
}else{
    window.addEventListener("load", function() {
        alert("Your page is loaded");
    }, false);
}
Run Code Online (Sandbox Code Playgroud)

您可以创建一个具有此行为的函数,并附加一个回调函数来执行您需要的任何操作。


Rom*_*las 3

在 Javascript 中,有load事件。

编辑:一个例子:

<html>
  <head>...</head>
  <body onload="doSomethingWhenPageIsLoaded();">
    ...
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)