javascript - IE10(兼容模式)生成 SCRIPT1015 : Unterminated string constant error on valid code?

标签 javascript internet-explorer

我在 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/

相关文章:

javascript - 在循环中使用 xhr 对象进行 html5 分块上传

css - calc() 不适用于 Internet Explorer/Microsoft Edge 中的转换

javascript - 添加html后使用php打开页面

javascript - 类型 'Observable<HttpEvent<T>>' 不可分配给类型 'Observable<T>'

html - 没有 IE 和 Firefox 背景

internet-explorer - 如何在安全页面上查看不安全的项目

internet-explorer - 未识别的 404 未找到页面

css - 某些 CSS Sprite 未在 Firefox、Chrome 和 IE 上显示?

javascript - jQuery 查找具有一个数据键和多个值的数据属性

javascript - 如何从对象中的特定参数从我的对象中找到唯一的对象