两个窗口的Javascript代码可用性.加载和文档.准备好了

Javascript code availability for both window.load and document.ready

本文关键字:可用性 代码 加载 准备好了 文档 Javascript 两个 窗口      更新时间:2023-09-26

我需要一个需要在文档上执行的函数。准备就绪,可用于窗口。Onload函数…

我该怎么做呢?

$(document).ready(function someFunction() {
    execute something and pass the results to window.load
}
);

$(window).load(Need results of somefunction);​

可以通过将函数调用的结果赋值给作用域中的某个变量来共享。

(function(){
   var result;
   $(document).ready(function(){
      result = 'something';
   });
   $(window).load(function() {
       console.log(result); //something
   });
}());

因为你需要在dom ready上做一些事情,然后在window load上访问它,所以将window load绑定方法嵌套在dom ready方法中。

$(document).ready(function () {
    // do something
    var somevar = "Hello World!";
    $(window).on("load", function () {
        console.log(somevar); // Hello World!;
    });
});

当将function()参数传递给$(document).ready(fn)之类的东西时,您实际上创建了一个未命名的函数,一个匿名函数。因此,如果您想为$(document).ready$(window).load获得相同的结果,您可以创建一个命名函数(这是如果您想共享函数本身):

function someFunction() {
    /* execute some code */
}
$(document).ready(someFunction);
$(window).load(someFunction);

既然我知道我首先误解了你的问题,让我来解决它。

在两个函数的作用域中都有一个变量将允许它们都使用它。所以,既然在全局命名空间中有一个变量,这不是一个好的做法,那么我们应该使用一个未命名的函数来包装你的两个函数:

(function(){
  var accessible_var;
  $(document).ready( function() {
    accessible_var = "passed to load handler";
  } );
  $(window).load( function() {
    console.log(accessible_var);
  } );
})();

你必须小心这两个处理程序!

document.ready将在所有元素就位时触发,它们可以在JS代码中被引用,但内容不一定被加载。

window.load,然而,将等待页面完全加载,这包括内部框架,图像等。

警告 -如果你想使用一个图像的高度,宽度属性,例如,然后文档。准备好了!!