我的源HTML中有以下内容:
<head>
...
<script>window.jQuery || document.write('<script src="/js/jquery.min.js"></script>');</script>
...
</head>
但我的浏览器(Chrome)将其解释为:
<head>
...
<script>window.jQuery || document.write('<script src="/js/jquery.min.js"></script>
</head>
<body>
"');"
...
我试图逃避document.write
字符串中的斜线,但这并没有奏效。有谁知道如何阻止浏览器将其解释为关闭脚本标记?
答案 0 :(得分:5)
</script>
被解释为关闭脚本标记,即使它在字符串内部你需要像这样拆分:
'</'+'script>';
答案 1 :(得分:2)
您需要转义脚本中的某些字符。
试试这个:
<script>window.jQuery || document.write('<script src="/js/jquery.min.js"><\/script>')</script>
我使用反斜杠/
转义了\
字符,因此最终结果如\/
声明中的document.write()
。
有关此设置的一个很好的示例,请尝试在GitHub上查看HTML5 Boilerplate项目:
https://github.com/h5bp/html5-boilerplate/blob/master/src/index.html#L26
希望这有帮助。