包含 </script> 的 javascript 变量

标签 javascript

我需要一点帮助。我必须创建一个包含更多 javascript 的 javascript 字符串,然后将其写入父窗口中的 div 标记。代码如下:

<script language="javascript" type="text/javascript">
var jstr2 = '';
jstr2 += '<script language="javascript">\n';
jstr2 += 'function doPagingProducts(str) {\n';
jstr2 += 'document.frmPagingProducts.PG.value = str\;\n';
jstr2 += 'document.frmPagingProducts.submit()\;\n';
jstr2 += 'return false\;\n';
jstr2 += '}\n';
jstr2 += '</script>\n';
jstr2 += '\n';
</script>

然而,创建的字符串中的结束脚本标签实际上关闭了 javascript,我得到如下错误:

Error: unterminated string literal
Line: 135, Column: 9 ( The </script> line before the end of the string.)
Source Code:
jstr2 += '

有什么办法可以避免这个问题......?

非常感谢您的帮助。

最好的问候, 保罗


编辑 我终于通过提取最后的 </script> 解决了这个问题来自 javascript 字符串。我在脚本显示的地方添加了一个结束标记。它很乱,但它有效。非常感谢您的所有评论。

最佳答案

SCRIPT 标签与内容无关,因此解析器只会不断运行内容,直到找到 /SCRIPT 序列。当它这样做时,它会将找到的内容传递给 JS 环境进行评估。这给你带来了未终止的文字错误,因为发送的内容在你的 /SCRIPT 开始的地方结束。 (没有找到 JS 解析器的终止引号)。

用反斜杠转义斜杠

jstr2 += "<\/script>";

或其他一些变通方法会破坏此处序列中的触发点并解决此问题(但仍然会给您留下一些非常可疑的代码)。

关于包含 &lt;/script&gt; 的 javascript 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4404679/

相关文章:

javascript - 如何在文本插入后放置回插入符号?

javascript - 当状态在计算属性中更新时,组件不会更新

php - 使用 HostMonster 连接到数据库

javascript - 异常 float 参数不是有限 Canvas

javascript - jQuery 新行\n

javascript - bootstrap datepicker,beforeShowDay 在第二次点击后起作用

javascript - 如何在 SAPUI5 V1.38.39 中从本地 JSON 文件在 Controller 中创建 JSON 模型?

javascript - 加速数字越接近其最大值

javascript - 使用javascript模拟鼠标在x,y处单击

javascript - 使用 idToken 或 accessToken 的 Azure AD 身份验证失败。我应该使用哪一个?