在 HTML5 中,我可以在一行中使用特殊的 javascript 字符,如下所示:
<script> var x;If (x < 1){alert('</'+'script'+'>');} </script>
但是,我正在尝试使我的代码适应移动设备,因此我认为尝试遵守移动配置文件 1.2 是好的,但是,我在上述代码中遇到了各种解析错误,例如:
character "<" is the first character of a delimiter but occurred as data
和
StartTag: invalid element name
并且两个错误都突出显示“<”字符。
这里的一篇文章表明我可以使用 CDATA 标签,而其他地方则表明 html 注释标签可能有效,但问题是这两种方法都需要 javascript 位于其自己的行上。例如:
<script type="text/javascript"><!--
var x;If (x < 1){alert('</'+'script'+'>');}
// -->
</script>
<script type="text/javascript">
// <![CDATA[
var x;If (x < 1){alert('</'+'script'+'>');}
// ]]>
</script>
有没有一种方法可以让我在一行内获得这种 JavaScript 代码,并且仍然可以正确执行,而不会在 w3c 验证器中收到解析错误?
最佳答案
您应该使用小写的 if,并且还应该使用转义字符代码:
var x;if (x < 1){alert('\x3C/script>');}
我认为这不是绝对必要的,但您也可以在脚本标记的另一端使用转义字符:
var x;if (x < 1){alert('\x3C/script\x3E');}
关于javascript - 一行 XHTML Javascript 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35330599/