<script> document.write('<h1> Hello </script> World </h1>') </script>为什么实际浏览器显示World ')
时间: 2023-11-13 15:03:33 浏览: 102
这是因为浏览器在解析这段代码时,遇到第一个`</script>`标签时就结束了JavaScript代码的解析,然后将代码中的`<h1> Hello </script>`视为普通的HTML代码进行渲染,因此会在页面上显示`Hello`。而后面的`World </h1>`则被视为`<h1>`标签的内容,并在页面上显示出来。所以最终显示的结果是`Hello World`。
相关问题
<body> <script> document.write('<h1> Hello <script> World </h1>') </script> <script> document.write('<h1> Hello </script> World </h1>') </script> </body>在浏览器显示什么
在浏览器中,这段代码的输出结果应该为两行文本,分别为:
```
Hello <script> World </h1>
Hello World </h1>
```
首先,由于第一个`document.write()`中的字符串包含了一个嵌套的`<script>`标签,而第二个`document.write()`中的字符串包含了一个非法的`</script>`标签,因此浏览器会对这两个字符串进行特殊处理,从而导致输出结果不符合预期。具体来说,浏览器会将第一个`<script>`标签视为JavaScript代码的结束标识,从而停止对第一个字符串的解析。因此,第一个`document.write()`实际上只输出了`Hello`和一个嵌套的`<script>`标签。
然后,浏览器会继续解析第二个`<script>`标签以及后面的代码。由于第二个`document.write()`中的字符串中包含了一个非法的`</script>`标签,因此浏览器会将其视为普通文本输出。因此,第二个`document.write()`输出的内容为`Hello World </h1>`,其中`</script>`标签被当做普通文本输出。
综上所述,这段代码的输出结果为两行文本,分别为`Hello <script> World </h1>`和`Hello World </h1>`。
<script> document.write('<h1> Hello </script> World </h1>') </script>在浏览器上显示什么
这段代码会导致浏览器显示一个错误的 HTML 结构,因为在字符串 "<h1> Hello </script> World </h1>" 中包含了一个 "</script>" 子字符串,被浏览器错误地解析为一个结束标签的标记,从而导致后面的 " World </h1>" 文本在 DOM 中成为一个兄弟节点而不是 `<h1>` 元素的内容。
具体来说,浏览器会将 "<h1> Hello </script>" 解析为一个 `<h1>` 元素,但是因为包含了一个 "</script>" 子字符串,导致浏览器认为这个 `<h1>` 元素已经结束了,因此后面的 " World </h1>" 文本会成为兄弟节点而不是 `<h1>` 元素的内容,最终的结果是:
```
Hello
<script> World </script>
```
因此,浏览器会显示 "Hello " 和 " World " 两个字符串,但是没有任何 `<h1>` 标签。
阅读全文