我在 SharePoint 中有一些小型 JQuery 脚本,当前使用硬编码路径来包含 jquery 本身和 CSS,因此移动它们很麻烦。
我想我应该使用 JS 和 document.write() 来包含使用动态生成的路径(包括网站根 URL)的文件。
问题:我有一段我认为是有效的 JS 代码,但 IE10 却将其吐出并显示“未终止的字符串”错误。如果我改变最后的 '</script>'
字符串到其他任何东西都可以正常工作(但当然不会产生有效的 html)。
代码本身通过了 JSlint,并带有一些关于间距的注释。 Javascriptlint.com 生成有关“如果指定路径,脚本标记必须为空”的警告,但我可以通过在两行中设置变量“imp”来解决该问题,首先生成 link
标记,然后连接 script
标签。
代码:
<script language="javascript">
var siteURL= L_Menu_BaseUrl;
var imp= '<link href="' + siteURL + '/SiteAssets/Path/my.css" rel="stylesheet" type="text/css"/>\n'
+ '<script language="javascript" src="' + siteURL + '/lib/js/jquery-1.9.1_min.js">' + '</script>\n';
</script>
我已经盯着这个太久了,这可能是非常简单的事情。我只是在这里构建一个 HTML 字符串,但 IE 似乎正在解释最终的 </script>
标记,忽略它是引号中的文字字符串这一事实。
有什么想法吗?
最佳答案
IE seems to be interpreting the final
</script>
tag, ignoring the fact that it's a literal string in quotes
这正是正在发生的事情。一种解决方案是使用 '</scr'+'ipt>'
。只需分解结束标记,这样它就不会被解释为结束标记。
var imp= '<link href="' + siteURL + '/SiteAssets/Path/my.css" rel="stylesheet" type="text/css"/>\n'
+ '<script language="javascript" src="' + siteURL + '/lib/js/jquery-1.9.1_min.js">' + '</scr' + 'ipt>\n';
编辑:你也可以这样做
... + '<\/script>\n';
关于javascript - IE10(兼容模式)生成 SCRIPT1015 : Unterminated string constant error on valid code?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24291983/