<script> document.write('<h1> Hello </script> World </h1>') </script>为什么实际浏览器显示World ')
时间: 2023-08-17 18:11:53 浏览: 138
这是因为在JavaScript代码中,`document.write`方法在执行时会将它的参数内容写入到文档中,而在这个例子中,`document.write`方法的参数是`'<h1> Hello </script> World </h1>'`,其中包含了HTML标签`<script>`和`</script>`,而这两个标签会被解释为JavaScript代码的一部分,从而导致`document.write`方法的执行被中断,无法将完整的HTML标签写入到文档中,所以实际浏览器只会显示`World ')`这部分内容。为了避免这种情况,可以在代码中使用转义字符将`<`和`>`字符转义为`<`和`>`,或者将HTML标签和JavaScript代码分开写。例如,可以将代码改为:
```
<script>
document.write('<h1> Hello </h1>');
document.write('World');
</script>
```
这样,在浏览器中就会正确地显示`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>` 标签。
阅读全文