js里面windows.onload函数不执行

当我在script标签内写完window.οnlοad=function(){}函数时,但是在运行界面是并没有运行这个函数,此我便在网上找了一下,并总结了以下几种情况

  • 只有一个函数window.οnlοad=functtion(){}

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <script src="./js/jquery-3.3.1.js"></script>
    <script type='text/javascript'>

        window.onload = function () {
            alert("页面加载完成====》onload");
        }

    </script>
</head>
<body>
     /***/
</body>
</html>

页面加载完毕之后完美运行此函数

  • 在window.οnlοad=functtion(){}函数之外,body还有onload属性,并且属性值为"after()"

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <script src="./js/jquery-3.3.1.js"></script>
    <script type='text/javascript'>

        window.onload = function () {
            alert("页面加载完成====》onload");
        }

        function after() {
            alert("页面after====》onload");
        }
    </script>
</head>

     <body onload="after()">

</body>
</html>

此时只会执行body元素里面的onload属性对应的函数,不会去执行window.onload事件。所以,当指定了body的onload以后,window.onload就无效了

  • window.οnlοad=functtion(){}函数出现在body属性的后面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <script src="./js/jquery-3.3.1.js"></script>
    <script type='text/javascript'>

        function after() {
            alert("页面after====》onload");
        }
    </script>
</head>

     <body onload="after()">

</body>
  <script type='text/javascript'>

        window.onload = function () {
            alert("页面加载完成====》onload");
        }

    </script>
</html>

此时执行的函数就是window.onload事件对应的函数

关于执行顺序的小测试

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>   

<head>   
    <script type="text/javascript"> 
       alert('a');

       window.onload=function () {  
       alert('b');  
         } ;

       alert('c');
   </script> 
   </head>   
   <body onload="alert('d');">  

   </body>   

</html>  

弹出层结果为:a、c、d

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>   

<head>   

   </head>   
   <body onload="alert('d');">  

   </body>   
     <script type="text/javascript"> 
       alert('a');

       window.onload=function () {  
       alert('b');  
         } ;

       alert('c');

   </script> 
</html> 

弹出层结果为:a、c、b

总结

  • onload事件只能执行一个

  • 在程序中设置一个onload的事件时

  1. 只设置body onload属性中可以响应事件 
  2. 只设置window.onload函数中也可以响应事件
  • 在程序中设置两个onload的事件时

  1. window.onload在head头部中出现的情况)只执行body onload属性的内容
  2. window.onload出现在body onload属性的后面的情况.等加载完body的页面,再执行onload事件,后面onload事件是可以覆盖前面的body onload属性.


无论顺序怎么样,除了onload事件的代码,都是按照顺序(从上到下)来进行的

备注:onunload:用户退出界面时的事件

 

转载于:https://my.oschina.net/u/3908739/blog/1861999

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值