每隔一段时间,我会看到一个 HTML 代码片段:
%3Cscript
%3C
替换<
. _ 这是因为代码是自动生成的还是需要在编辑器中正确显示,还是由于某种原因以这种方式显式编码并且需要将该表单保留在 HTML 网页上?如果这里有帮助的话,我正在质疑的代码行的完整开头:
document.write(unescape('('%3Cscript
如果你%3C
用 a替换了代码行,那行代码就不能正常工作<
吗?
每隔一段时间,我会看到一个 HTML 代码片段:
%3Cscript
%3C
替换<
. _ 这是因为代码是自动生成的还是需要在编辑器中正确显示,还是由于某种原因以这种方式显式编码并且需要将该表单保留在 HTML 网页上?如果这里有帮助的话,我正在质疑的代码行的完整开头:
document.write(unescape('('%3Cscript
如果你%3C
用 a替换了代码行,那行代码就不能正常工作<
吗?
我使用过JagPDF几次,根据我上次的经验,我认为在 pdf 中嵌入字体可能会解决您的问题。
unescape()
Javascript 函数在写入文档之前将其转换%3C
回。<
这显然是为了避免触发可能会<script
在源代码中看到文字标签并误解其含义的扫描程序。
在嵌入在 html 中的脚本标签中编写 javascript 时,该序列</script>
不能出现在脚本中的任何位置,因为它将结束脚本标签:
<script type="text/javascript">
var a = "<script>alert('hello world');</script>";
</script>
或多或少被视为:
<script type="text/javascript">
var a = "<script>alert('hello world');
</script>
";
<script></script>
在 html 解析器的眼中。
就像 mplungjan 说的那样,这是一种复杂的方式,可以简单地<\/script>
使用 javascript 字符串文字来使其工作:
<script type="text/javascript">
var a = "<script>alert('hello world');<\/script>";
</script>
这根本与document.write
技术无关,这只是您在 javascript 字符串文字document.write
中需要的常见地方。"</script>"
另请注意,这"<script>"
确实完全没问题。这就是"</script>"
您从代码中删除的问题。
如前所述,可能试图欺骗扫描仪。
更有用和重要的一个是
<\/script>
或'...<scr'+'ipt>'
需要在 document.writing 内联脚本时不结束当前脚本块