<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>star</title>
<meta name="description" content="">
<meta name="keywords" content="">
<link href="" rel="stylesheet">
<script type="text/javascript">
function init(obj){
obj.bgColor= "black";//这行为什么不能改变网页背景颜色。this不是代表body对象吗。
// alert(123);
//var obj=document.getElementById("b1"); 这样就可以获得body对象,能更改网页背景颜色。
//obj.bgColor= "black";
}
</script>
</head>
<!--onload页面加载之后立即执行一段 JavaScript:-->
<body onload="init(this)" id="b1">
</body>
</html>
请教各位大神,为什么我在body里用this,而无法改变body的背景颜色,必须要用要用id来获取body这个对象。我想了一上午也没想通。请朋友帮忙给说下。
你可理解为js的一种特性,在body onload中的this指的是window,在img、frame等地方onload中的this指的就是该dom,就是这么奇怪。###### http://www.w3.org/TR/2012/WD-html5-20121025/section-index.html#ix-handler-window-onload
嗯,人家W3C就是这么规定的 >_<
PS:
body 上的 bgcolor 属性已经在 html5 中被弃用,推荐使用CSS…… ######this表示调用它所在函数的那个对象吧,window调用了onload所以this就是window######我是body调用了this,今天这个问题我想了一上午,不过谢谢
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。