我定义了以下名称空间,其中包含DefaultHead:成员,该成员具有我需要加载的脚本标记列表
但是当我尝试按如下方式设置时,它会在DefaultHead上面给出异常:'
我不明白如何解决这个问题。
var PortalDemoSidebar = {
DefaultHead:'<script src="chrome://portal_demo/content/scripts/mainPage.js"></script>\
<script src="chrome://portal_demo/content/scripts/jquery-1.5.1.min.js"></script>\
<script src="chrome://portal_demo/content/settings/api_url.js"></script>\
<script src="chrome://portal_demo/content/scripts/utilities.js"></script>\
<script src="chrome://portal_demo/content/scripts/api_calls.js"></script>\
<script src="chrome://portal_demo/content/scripts/jquery.xml.js"></script>\
<script src="chrome://portal_demo/content/scripts/history.js"></script>\
<link href="chrome://portal_demo/content/style/main_page.css" rel="stylesheet" type="text/css"></link>',
答案 0 :(得分:4)
这里有两个可能的问题。
首先,您拥有一个不受支持的多行字符串文字。字符串文字不能包含换行符。如果要在单独的行上拆分字符串,则必须终止字符串并在下一行开始一个新字符串,并使用+
运算符将它们连接起来。例如:
var x = 'This is' +
' a long ' +
'string';
另一件事是字符串中的HTML代码。浏览器在确定脚本标记中的内容时不解析Javsscript代码,因此当它在字符串文字中遇到</script>
时,它会认为它是标记的结尾。
如果您使用的是XHTML,则可以在脚本标记内添加CDATA标记,以告知浏览器在CDATA标记结束之前没有标记。另一种方法是确保字符串中没有</script>
,您可以通过在标记的中间分割字符串来完成:</scr'+'ipt>
。