解决方案 »
- jquery如何将“自身”当做参数传递给前台函数??
- 在线生成PNG图片的问题
- 一个小问题,JavaScript的onclick事件在火狐下的不执行
- 一些常用的js验证.有错之处请指证.
- EXT grid 数据源设置成c#生成的json数据时出错,哪位帮我看看
- 请问:如何用程序得到打开一个页面的状态(比如:正常打开,找不到页面,等等)
- 如何在同一个页面,在一个td里, 点击 这个td里面的字如 "换色" 可以把这个td 的bgcolor换成另外一种color呀
- 如何屏蔽页面刷新和用CTRL+N打开新的窗口?
- 怎么最近出现很多有关Netscape 的问题啊?IE的趋势至少在国内是不可阻挡的...
- 对象的问题?哈哈~~~~~~~~~`
- jquery的fadein和滚动条的问题
- 晕啊,JQuery 插件这么写不行啊,乱套了,帮帮我
document_body_onload()是立即执行函数
document_body_onload是获取函数的引用
事件所需要的是函数的引用,所以要
document.body.onload = document_body_onload;2.
你这样document.body.onload = document_body_onload;浏览器无反应是因为你的代码在<head></head>中,
body对象还没有加载,body对象还不存在,要把代码放在<body></body>中,<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> new document </title>
</head><body>
<script type="text/javascript">
function document_body_onload() {
alert("document.body.onload");
}
document.body.onload = document_body_onload;
</script>
</body>
</html>
document.body.onload和window.onload是同一个地址,会相互覆盖<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> new document </title>
</head><body>
<script type="text/javascript">
window.onload = function () { alert("window.onload"); };
alert(document.body.onload===window.onload);//-------------》true
alert(document.body.onload);</script>
</body>
</html>
1、你说得没错,事件是需要函数的引用。可是我在
<body>
<script type="text/javascript">
//document.body.onload = document_body_onload;
//document.body.onload = document_body_onload();
//以上两种写法都可以执行!
</script>
</body>所以,我觉的。如果写成document.body.onload = document_body_onload(),这就跟这种写法一致<body onload="document_body_onload()"></body>,因为在标签里写事件,注册时实质上是body.onload=function(){ document_body_onload() }这样的!也就是放个匿名函数。然后在匿名函数里执行其它函数一样。这也是大多数在onclick里直接写“alert('');”能弹出对话框的原因。嗯!我是这样理解的,不知道这样对不对!若不对,请大神指出,小弟万分感谢!
2、这个问题我想了一下,确实如你所说!在<head>标签里,<body>确实还没加载。大神说得多!小弟受教了!
3、关于document.onload事件,这个事件确实没有!在你的提示下(事件是引用,而不是执行),我试着写了这样一个东西:docudoment.abc=document_onload();结果弹出了对话框!相信document.abc肯定没这个属性,也没有这个事件吧!所以就相当于只有document_onload();这个是执行函数,因为找不到document.abc,但=号后面的函数还是要执行!所以,也把其他人的悖论!然后第一问的document.body.onload = document_body_onload();就是立即执行函数!所以,没有问题!
4、body.onload和window.onload确实会相互覆盖,就如大神所言。地址相同!求大神指点!
不等于
document.body.onload=function(){ document_body_onload() }function(){ document_body_onload() }是返回这个匿名函数的引用,
要立即执行匿名函数也要在后面加()<script type="text/javascript">
aaa = function (){alert(555);}();
</script>