数组中的字符串“</script>”被解释,是否有解决方法
The string "</script>" in an array is interpreted, is there a workaround?
This :
<script type="text/javascript">
var a = new Array("</script>");
alert(a);
</script>
。没有按预期工作(至少是我(。字符串"</script>"
被解释为脚本的结尾,即使它用引号引起来。请看这些 jsfiddles :
http://jsfiddle.net/RYbTS/
http://jsfiddle.net/PB73z/
第一个以正常方式声明数组的第一个元素,而第二个以紧凑形式声明它。在这两种情况下,浏览器(Chrome,FF,IE(都会在"</script>"
停止脚本,并且永远不会收到警报。
无论是使用引号还是双引号,它的行为方式都相同。
是意料之中的吗?有解决方法吗?
编辑:谢谢大家,我会逃脱反斜杠。对不起,我不能接受大家的回答,我接受了第一个,但谢谢大家。
Juhana 提供的链接解释了这种行为:
在将元素中的文本节点传递给 JS 引擎之前,所有 HTML 都会被解析,
</script>
不会因为位于 JS 字符串文本中而得到特殊处理
您可以转义/
字符:
<script type="text/javascript">
var a = new Array("<'/script>");
alert(a);
</script>
这是一个更新的小提琴。
转义序列:
var a = new Array("<'/script>");
或拆分它:
var a = new Array("</scr" + "ipt>");
这就是 json 编码转义/
的原因。通常没有必要逃避它,但这是(我认为(您遇到问题的唯一情况。当然,转义序列</script>
会更准确,但这似乎有点出乎意料。
用法如下:
<script type="text/javascript">
var a = new Array("<'/script'>");
alert('ok');
</script>
在这里摆弄:
http://jsfiddle.net/GUc2x/
相关文章:
- 访问布局信息是否也会导致浏览器重排
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 如何检测是否有溢出
- jQuery中是否内置了任何字符串格式化函数
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 测试索引值是否等于某个数字的倍数
- Fancybox是否将Click事件静音
- 主干-不管怎样,检查事件以前是否绑定过
- YUI3 IO实用程序是否可以根据给定的内容类型标头值自动序列化数据
- PHP是否以与JavaScript相同的方式解释代码
- 当使用Google Chrome(V8)时,Javascript是否可以被视为一种解释语言
- 数组中的字符串“”被解释,是否有解决方法
- JavaScript中函数的大写是否会影响代码的解释方式
- 是否存在“;编程文化;解释为什么FF从measureText方法返回长分数
- 是否编写脚本以获取页面的HTML值?里面的解释
- 是否有任何python库可以安全地解释混淆的javascript字符串
- 在执行第一行之前,是否需要对JavaScript的每一行进行解释
- 是否可以解释 C# 表达式树以发出 JavaScript
- 是否有一个延迟的javascript下载/解释,是触发所需的函数被调用
- 是否有一种方法可以使用命令行工具来查看网页的JavaScript解释源