作者热门文章
- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我一直在 javascript 中尝试一些技巧,但遇到了一个荒谬的问题:我无法使用 <script>
作为 javascript 字符串中的子字符串! 这是一个示例:
<html>
<head>
<script>
alert("<script></script>");
</script>
</head>
</html>
它应该打印出 <script></script>
,但相反,我得到了这个:
");
以 HTML 格式打印在页面上。
问题: 我如何使用 <script>
其次是 </script>
Javascript 中的子字符串,为什么会这样?
这里是 JSFiddle
最佳答案
让您感到困惑的是 </script>
. HTML 解析器无法识别 Javascript 字符串或嵌套 <script>
标签,因此它将其解释为初始 <script>
的结束标签.也就是说,这部分文档被解析为:
<script> (open tag)
alert("<script> (text node - contents of the script)
</script> (close tag)
"); (text node - plain text)
第二个</script>
被忽略,因为没有其他 <script>
标记以使其关闭。
要解决此问题,请分解 </script
这样 HTML 解析器就看不到它。例如:
alert("<script><\/script>");
或:
alert("<script><" + "/script>");
或者只是将代码放在外部 Javascript 文件中。此问题仅出现在内联脚本中。
关于javascript - 如何将 "</script>"放入 javascript 字符串中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28259389/
我是一名优秀的程序员,十分优秀!