我需要一些帮助.我必须创建一个包含更多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>
Run Code Online (Sandbox Code Playgroud)
但是,创建的字符串中的结束脚本标记实际上关闭了javascript,我得到的错误如下:
Error: unterminated string literal
Line: 135, Column: 9 ( The </script> line before the end of the string.)
Source Code:
jstr2 += '
Run Code Online (Sandbox Code Playgroud)
有什么办法可以防止这个问题..?
非常感谢你的帮助.
最诚挚的问候,保罗
编辑 我终于通过</script>从javascript字符串中提取final 来解决这个问题.我添加了脚本显示的结束标记.它凌乱,但它的工作原理.非常感谢您的所有评论.
Mic*_*man 18
该SCRIPT标签内容无关,所以解析器只是不断通过内容运行,直到它找到一个/ SCRIPT序列.如果是这样,它会将找到的内容传递给JS环境进行评估.这会为您提供未终止的文字错误,因为发送的内容会在/ SCRIPT开始的地方结束.(没有为JS解析器找到终止引号).
用反斜杠转义斜杠
jstr2 += "<\/script>";
Run Code Online (Sandbox Code Playgroud)
或者一些其他的工作,在这里休息破解序列中的触发点,并解决了这个问题(但仍给你留下了一些非常可疑代码).
您必须拆分字符串:
jstr2 += '<' + '/script>\n';
Run Code Online (Sandbox Code Playgroud)
最好注释掉脚本中的所有内容:
<script type="text/javascript">
<!--//
// your code here
//-->
</script>
Run Code Online (Sandbox Code Playgroud)
或者在 HTML 中:
<script type="text/javascript">
//<![CDATA[
// your code here
//]]>
</script>
Run Code Online (Sandbox Code Playgroud)
或者在 XHTML 中:
| 归档时间: |
|
| 查看次数: |
2916 次 |
| 最近记录: |