js中body里能用this来代替吗 js报错 -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

js中body里能用this来代替吗 js报错 

kun坤 2020-06-03 11:19:00 16

<!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这个对象。我想了一上午也没想通。请朋友帮忙给说下。

JavaScript
分享到
取消 提交回答
全部回答(1)
  • kun坤
    2020-06-03 11:19:10

    你可理解为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,今天这个问题我想了一上午,不过谢谢

    0 0
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程