GVKun编程网logo

向window.onload添加两个功能(window.onload可以写两个吗)

11

如果您想了解向window.onload添加两个功能的相关知识,那么本文是一篇不可错过的文章,我们将对window.onload可以写两个吗进行全面详尽的解释,并且为您提供关于$(document).

如果您想了解向window.onload添加两个功能的相关知识,那么本文是一篇不可错过的文章,我们将对window.onload可以写两个吗进行全面详尽的解释,并且为您提供关于 $(document).ready () 与 window.onload 的区别、$(document).ready() 与window.onload、$(document).ready和window.onload、$(window).load(function (){})的区别、document.onLoad 与 Body标签中加入onLoad 和 windows.onload的有价值的信息。

本文目录一览:

向window.onload添加两个功能(window.onload可以写两个吗)

向window.onload添加两个功能(window.onload可以写两个吗)

我的表单上有两个功能,但如果另一个处于活动状态,则其中一个不起作用。这是我的代码:

window.onload = function(event) {    var $input2 = document.getElementById(''dec'');    var $input1 = document.getElementById(''parenta'');    $input1.addEventListener(''keyup'', function() {        $input2.value = $input1.value;    });}window.onload=function(){    document.getElementById(''enable'').onchange=function(){        var txt = document.getElementById(''gov1'');        if(this.checked) txt.disabled=false;        else txt.disabled = true;    };};

我的意思是,当我同时拥有这两个功能时,第二个功能可以正常工作,但第一个功能不起作用,如果取出第二个功能,第一个功能将像正常情况一样工作,为什么会这样?是因为名字吗?

答案1

小编典典

尝试将所有代码放入相同的(仅1个)onload方法中!

 window.onload = function(){        // All code comes here  }

 $(document).ready () 与 window.onload 的区别

$(document).ready () 与 window.onload 的区别

Jquery 中 $(document).ready () 的作用类似于传统 JavaScript 中的 window.onload 方法,不过与 window.onload 方法还是有区别的。

 

1. 执行时间 

 

        window.onload 必须等到页面内包括图片的所有元素加载完毕后才能执行。 

        $(document).ready () 是 DOM 结构绘制完毕后就执行,不必等到加载完毕。 

 

2. 编写个数不同 

 

         window.onload 不能同时编写多个,如果有多个 window.onload 方法,只会执行一个 

         $(document).ready () 可以同时编写多个,并且都可以得到执行 

 

3. 简化写法 

 

         window.onload 没有简化写法 

         $(document).ready (function (){}) 可以简写成 $(function (){});


$(document).ready() 与window.onload

$(document).ready() 与window.onload

$(document).ready()的作用类似于JavaScript中的window.onload方法,但是与window.onload方法还是有区别的。

$(document).ready对于支持DOMContentLoaded时间的浏览器,会使用事件,所有的节点渲染完毕,就执行,可以调用多次,如果不支持则使用onload事件。

window.onload事件要等到所有资源加载完毕,如图片、视频、js脚本等,只能绑定一次,后面的绑定会覆盖前面所绑定的事件。

执行时间不同

window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行。
$(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕。

执行个数不同

window.onload不能同时编写多个,如果有多个window.onload方法,只会执行最后一个
$(document).ready()可以同时编写多个,并且都可以得到执行

简化写法

window.onload没有简化写法
$(document).ready(function(){})可以简写成$(function(){});

代码示范
window.onload = function(){
alert(“1”);
};
window.onload = function(){
alert(“2”);
};
能同时编写多个 但结果只输出第二个   没有简化写法
$(document).ready(function(){
alert(“Hello World”);
});
$(document).ready(function(){
alert(“Hello World”);
});
能同时编写多个 结果两次都输出
简化写法 $(function(){});

$(document).ready和window.onload、$(window).load(function (){})的区别

$(document).ready和window.onload、$(window).load(function (){})的区别

$(document).ready:是DOM结构绘制完毕后就执行,不必等到加载完毕。 意思就是DOM树加载完毕,就执行,不必等到页面中图片或其他外部文件都加载完毕。并且可以写多个.ready。

window.onload:是页面所有元素都加载完毕,包括图片等所有元素。只能执行一次。 所以,$(document).ready的执行时间要早于window.onload。并且可以写多个,看代码:

//以下代码无法正确执行: 
window.onload = function()
{ 
alert(“text1”); 
}; 
window.onload = function()
{ 
alert(“text2”); 
}; 
//结果只输出第二个 能同时编写多个 
//以下代码正确执行: 
$(document).ready(function()
{ 
alert(“Hello World”); 
}); 
$(document).ready(function()
{ 
alert(“Hello again”); 
}); 
//结果两次都输出

如果需要获取DOM绑定元素的属性值时,最好使用window.onload,因为他是在所有元素加载完毕才执行,如果使用$(document).ready,DOM已经加载,但是DOM绑定的元素属性没有加载,所以属性不生效。要解决这个问题,可以使用 Jquery 中另一个关于页面加载的方法 ---load() 方法。 Load() 方法会在元素的 onload 事件中绑定一个处理函数。如果处理函数绑定给 window 对象,则会在所有内容 ( 包括窗口、框架、对象和图像等 ) 加载完毕后触发,如果处理函数绑定在元素上,则会在元素的内容加载完毕后触发。

//Jquery 代码如下: 
$(window).load(function ()
{ 

});
//等价于 JavaScript 中的以下代码 
Window.onload = function ()
{
 
}

总结:

  1. window.onload=function(){}是等待所有的内容都加载完之后执行,比如图片,内容,js,css等。

  2. $(function(){}),是等待DOM加载完之后执行(我的理解是标签绘制完毕之后),图片未加载完时也能执行。

  3. $(function(){})是$(document).ready(function(){})的简写方式,功能是一样的。

  4. $(window).load(function (){})也是等待所有的内容都加载完之后执行。

  5. 不管是外链js还是页面中的js的window.onload都只执行最后的一个

  6. $(window).load(function (){})可以有多个,而且都是顺序执行。

document.onLoad 与 Body标签中加入onLoad 和 windows.onload

document.onLoad 与 Body标签中加入onLoad 和 windows.onload

问题: 我一直认为使用javascript的document.onLoad指定一个函数,跟在Body标签中加入onLoad是一样的 不过能过今天的示例发现,document.onLoad并不是在页面加载完成时引发。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>

<head>

  <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  <title>无标题文档</title>
  <script language="JavaScript">
    function mytest1() {
      console.log(''document'', new Date())
      console.log(''document'', document.querySelector(''body''))
      // alert(document.getElementById("my2"));
      console.time()

    }
    document.onLoad = mytest1();

    function mytest2() {
      console.log(''body'', new Date())
      console.log(''body'', document.querySelector(''body''))
      console.log(''body img'', document.querySelector(''img''))
      console.timeEnd()
      console.time()
      // alert(document.getElementById("my2"));
    }
    function mytest3() {
      console.log(''img'', new Date())
      console.log(''img'', document.querySelector(''img''))
      console.timeEnd()
      // alert(document.getElementById("my2"));
    }

  </script>
</head>

<body onload="mytest2()">
  <p id="my2" >测试内容</p>
  <img onload="mytest3()" src="./logo.png"/>
</body>

</html>

调用 docuemnt.onload 指的是这个文档元素加载完成时,仅当DOM加载完成,不包括它子元素,
他们的顺序是 docuemnt.onload > body 内部的元素的onload > body onload

而且,windows.onload 就是 body onload 因为,他们应该是同一个方法

body 标签上的 onload="mytest2()" 方法会覆盖,windows.onload 赋值方法
如果,windows.onload 是在 加载完成body 标签之后赋值的 会覆盖 body 标签上的 onload 方法

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>

<head>

  <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  <title>无标题文档</title>
  <script language="JavaScript">
    function mytest1() {
      console.log(''document'', new Date())
      console.log(''document'', document.querySelector(''body''))
      // alert(document.getElementById("my2"));
     
    }
    document.onLoad = mytest1();

    function mytest2() {
      console.log(''body'', new Date())
      console.log(''body'', document.querySelector(''body''))
      console.log(''body img'', document.querySelector(''img''))
    
      // alert(document.getElementById("my2"));
    }
    function mytest3() {
      console.log(''img'', new Date())
      console.log(''img'', document.querySelector(''img''))
      
      // alert(document.getElementById("my2"));
    }

    window.onload = function(){
      console.log(''window'', new Date())
    }
  </script>
</head>

<body onload="mytest2()">
  <p id="my2" >测试内容</p>
  <img onload="mytest3()" src="./logo.png"/>
</body>

</html>  

关于向window.onload添加两个功能window.onload可以写两个吗的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于 $(document).ready () 与 window.onload 的区别、$(document).ready() 与window.onload、$(document).ready和window.onload、$(window).load(function (){})的区别、document.onLoad 与 Body标签中加入onLoad 和 windows.onload等相关知识的信息别忘了在本站进行查找喔。

本文标签: