首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这是什么意思:“document.write(‘<scr’+ipt.”)?

这是什么意思:“document.write(‘<scr’+ipt.”)?
EN

Stack Overflow用户
提问于 2009-09-24 21:14:03
回答 5查看 14.6K关注 0票数 21

我在每个雅虎新闻页上都看到过,在源代码的底部,

也不明白为什么他们会像这样破坏脚本这个词。

有谁知道这有什么原因吗?

代码语言:javascript
复制
document.write("<scr"+"ipt language=javascript src=http://l.yimg.com/d/lib/bc/bc_2.0.4.js></scr"+"ipt>");
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-09-24 21:16:34

考虑一下这个简化的例子:

代码语言:javascript
复制
<script>
document.write("something </script> something");
</script>

浏览器的HTML解析器将在</script>字符串中看到JavaScript,并将其解释为脚本元素的结尾。

HTML解析器不知道JavaScript语法-它只知道<script>元素在下一个</script>结束。

(它还知道不能嵌套<script>元素,因此在示例中中断了打开的<script>和关闭的</script>。)

票数 43
EN

Stack Overflow用户

发布于 2009-09-24 21:19:14

假设您正在编写一个工具,用于检测文本块中脚本块的开始和结束。假设你看到了

代码语言:javascript
复制
<blah><blahdeblah><script>

blah blah blah

blah

print("</script>")

print("<script>")

blah

</script>

</blahdeblah></blah>

不知道脚本语言的语法,你的工具怎么知道这是一个脚本块,而不是两个脚本块之间有")blah?

网络浏览器就是这样一个工具。这是一个合理的做法,以确保您不会混淆网页浏览器从来没有<script></script>在您的文件,除非它实际上是一个脚本标签。

票数 4
EN

Stack Overflow用户

发布于 2009-09-24 21:14:58

这样它就不会被计算,而是被插入为一个字符串。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1474185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档