浏览器将Javascript字符串解释为HTML标记

时间:2016-07-01 15:07:20

标签: javascript html google-chrome

我的源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字符串中的斜线,但这并没有奏效。有谁知道如何阻止浏览器将其解释为关闭脚本标记?

2 个答案:

答案 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

希望这有帮助。