【问题标题】:<script> tag doesn't close properly<script> 标签没有正确关闭
【发布时间】:2013-03-30 08:48:52
【问题描述】:

在包含页面基本布局的 default.jspx 中,我尝试导入一些 jquery 库,如下所示

<head>
    ...
    <spring:url value="/resources/js/lib/jquery-1.9.1.min.js" var="jquery_url" />
    <spring:url value="/resources/js/lib/jquery.tokeninput.js" var="jquery_tokeninput_url" />
    <script src="${jquery_url}" type="text/javascript"></script>    
    <script src="${jquery_tokeninput_url}" type="text/javascript"></script>
    <script type="text/javascript">
        $.noConflict();
    </script>
    <util:load-scripts />
    ...
</head>

但是当页面在浏览器中呈现时,第一个脚本标签会吞下另外两个

<head>
...
<script type="text/javascript" src="/roo-inari/resources/js/lib/jquery-1.9.1.min.js">
//These lines are inside the first script tag
<script type="text/javascript" src="/roo-inari/resources/js/lib/jquery.tokeninput.js"/>
<script type="text/javascript">
        $.noConflict();
//The tag is closed here
</script>
<link href="/roo-inari/resources/dijit/themes/tundra/tundra.css" type="text/css" rel="stylesheet">
...

知道是什么原因造成的吗?该项目基于 spring roo 生成的 web mvc 脚手架。 我正在使用 Chrome v.25。

【问题讨论】:

  • 我不知道 Spring,但是如果您的 JSP 源在为服务器变量解析的两行末尾有 &lt;/script&gt;,那么 Spring 或其他服务器正在输出它似乎是有原因的.如果您不是从实际页面源代码(右键单击,查看源代码)复制它,则显示它。
  • +1 我不知道为什么投反对票。我不知道spring-mvc,但这似乎很奇怪,因为您的脚本标签看起来格式正确并且在页面中看起来很好,假设srcspring-mvc 的有效值。跨度>
  • +1 我不知道为什么会投反对票(如果你这样做,请解释一下),我遇到了同样的问题,这完美地描述了它。

标签: javascript jquery jsp spring-mvc spring-roo


【解决方案1】:

简单的解决方案是在标签内写一个注释,这样它就不会自动关闭。傻逼

<script src="${jquery_url}" type="text/javascript"><!-- required for some browsers --></script> 

【讨论】:

  • +1,因为这听起来像是未来有类似问题的用户可能会发现有用的东西。只要 SO 允许您,也将此答案标记为已接受。
  • 对此的解释是当元素内部没有任何内容时,解析器会吞噬结束标签。正如@Pyhtos 建议的那样,在空脚本标签中放置一个推荐可以解决这个问题。一年前我遇到过这个问题,我相信这个解释与 XHTML 有关。
猜你喜欢
  • 2019-05-09
  • 1970-01-01
  • 1970-01-01
  • 2011-11-27
  • 1970-01-01
  • 2014-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多