为啥在<body>中加onload不能执行呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥在<body>中加onload不能执行呢?相关的知识,希望对你有一定的参考价值。

<body onload="send(2)">

我的body标签是这样的,
send是一个测试过可以执行的函数..
我在一个
<input type=radio onclick=send(2) name=radio>
中测试,可以执行这个函数

我想网页一开始载入的时候就执行这个函数,
但不行,不知道为什么..
send这个函数我是用来控制某些tr的显示与否的
如下

function send(ID)
var sel_tpye_1 = document.getElementById("sel_type_1");
var sel_tpye_2 = document.getElementById("sel_type_2");
var sel_tpye_3 = document.getElementById("sel_type_3");
if (ID==0)
sel_type_1.style.display = "none";
sel_type_2.style.display = "none";
sel_type_3.style.display = "none";
else if (ID==1)
sel_type_1.style.display = "";
sel_type_2.style.display = "none";
sel_type_3.style.display = "none";
else if(ID==2)
sel_type_1.style.display = "none";
sel_type_2.style.display = "";
sel_type_3.style.display = "none";




但我点击单选筐的时候,可以执行这个函数,
<input type=radio onclick=send(2) name=radio>
也就是这个..

我想当网页一载入的时候,
自动执行send(0),就是隐藏所有的tr
我有一个网页
<body onload="send(0)">
这样写可以,但另一个就不行了,我不知道为什么,
代码是一样的,

我试过把onload改为onclick,当我点一下网页任何一个地方,就能执行函数,
那是不是说,网页没有被onload?

<body onload="javascript:send(0);">
这样看看

另外请确定一下两个页面有什么差异
参考技术A 最后那个
</body>

改成
<script>send(0);</script>
</body>
参考技术B 其实可以这样
<script>
function send(...)
....

send(0);
</script>
这样也和onload 一样

js页面加载时调用函数方法

方法一:在html的body中加入onload=""事件

<body onload=‘queryServer()‘>

</body>

  

方法二:jquery 中:$(function(){}) //方法体里面写调用方法

<!-- 全局js -->
<script src="../js/jquery.min.js?v=2.1.4"></script>
<script type="text/javascript">
var host = "http://127.0.0.1:8080";   $(function() {    queryServer(); //待调用的函数   });   <!--获取服务名称--> function queryServer() { $.ajax({ type: "POST", url: host+"/tools/get-sys-app-key", dataType: "json", data: datastr, success: function (result) { var opt = ""; var length = result.length; for ( i = 0; i < length; i++) { var serverName = result[i][‘appName‘]; //获取服务名称 var serverAppId = result[i][‘appId‘];//获取服务id opt = opt + "<option value=\"" + serverAppId + "\">" + serverName+"("+serverAppId+")"+ "</option>"; } $("#selectServer").html("<option value=\"0\">请选择服务名称</option>"+opt); }, error: function (jqXHR) { console.log("error:" + jqXHR.status) } }); } </script>

 

方法三:jquery 中:使用$().ready()

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

  总结:方法二和方法三都是一个意思,两种不同的写法而已

以上是关于为啥在<body>中加onload不能执行呢?的主要内容,如果未能解决你的问题,请参考以下文章

为啥css要放在头部,js要放在body底部

js如何不用body里的onload事件实现页面加载自动调用该方法

如何使用JS清除 onload事件。

js页面加载时调用函数方法

请问BODY中的ONLOAD是啥意思?

如何处理 <head> 标签中的 body onload 事件