body表示实体的意思,即网页中相关操作的标签都会包含于此对象内.
它有几个事件:
onload:网页加载完毕后触发。
onunload:网页关闭后触发
onbeforeunload:在网页准备关闭(或离开)前触发。
window.event.returnValue:为此属性付一值,一般表示为警告,如提示是否数据没保存什么的,
如下图:
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <script type="text/javascript"> function checka() { if (confirm("你要关闭吗?")) alert("yes"); else { alert("none"); } } </script> </head> <body onbeforeunload="event.returnValue='真的要关闭吗?';">//关闭网页时会提示此信息,也可以调用上面checka()函数 <form id="form1" runat="server"> <div> </div> </form> </body> </html>
如果我们把js函数放在header中,由于网页加载的顺序是从上到下执行的,有可能在header中要用到某个标签,但下面的内容没有加载,网页会弹出错误提示,这时应该如何办呢?
我们可以把要用到的函数写到body的onload事件中,即在网页加载完成后会执行此onload事件。
例如我把想把所有input的 onclick事件指定为我们自定义的事件,可以把写一个函数,给每个input标签注册上相关事件。如下:
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <script type="text/javascript"> function initEvent() { var objs = document.getElementsByTagName("input"); if (objs) for (var i = 0; i < objs.length; i++) objs[i].onclick = clickme; //为每个input标签事件注册一个自定义事件 } function clickme() { alert("别点我"); } </script> </head> <body onload="initEvent();"> <form id="form1" runat="server"> <div> <input type="button" /> <input type="text"/> <input type="radio"/> </div> </form> </body> </html>
分别点击button、text和radio,都会调用clickme事件。