关于html中的执行过程

来源:互联网 发布:网络问政的广东样本 编辑:程序博客网 时间:2024/05/17 03:01
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test</title>
</head>

<body onload="alert(' Who are you?')">

</body>
</html>

<script language="javascript" type="text/javascript">alert("Hacker!");</script>

上面的代码执行后,浏览器先弹出了Hacker的消息框,然后是Who are you? 的,这是为什么呢?

可能大家一般不会这么写代码,在此我也就是为了做个小测试。

浏览器是完全载入网页文档中的所有根结点后才开始执行里面的JS代码的,一般(也是规定)只有一个根结点,但我这里有了两个:<html></html>,<script></script>;所以在载入完<html>中的元素后,继续载入<script>中的,但这里比较特殊,<script>就是JS脚本,所以不存在其子结点,所以就直接反应出来了(Hacker!)。而<html>中的子结点<body>随后才通过onload调用alert()。 

原创粉丝点击