如何使用Groovy XML MarkupBuilder创建有效的HTML脚本标签?

6
我正在使用Groovy 1.8的XML MarkupBuilder构建一个包含<script>标签的HTML页面。
在Firefox 18中加载页面时,我看到的是一个空白页面而不是预期结果。
这似乎是由于生成的<script>标签没有相应的</script>标签引起的, 即使没有内容需要</script>标签。(参见:https://dev59.com/R3VD5IYBdhLWcg3wJIIK)
示例Groovy代码:
def builder = new groovy.xml.MarkupBuilder( out )

builder.html {
  head {
    script( type:'text/javascript', src:'//example.com/example.js' )
  }

  body {
    p("Hello...Newman.")
  }
}

如果我使用Firefox的“查看页面源代码”(Ctrl-U)检查生成的(空白)页面的HTML,则会看到以下内容:
<html>
  <head>
    <script type='text/javascript' src='//example.com/example.js />
  </head>
  <body>
    <p>Hello...Newman.</p>
  </body>
</html>

细看一下,我看到<script ... />标签上的“/”以红色呈现, 而悬停在“/”上的文本显示为“在非空HTML元素上使用自闭合语法(“/>”)。忽略斜杠并将其视为起始标记。”
那么,我该如何使用Groovy XML MarkupBuilder生成有效的HTML <script>标签?
2个回答

9
如果您定义了一些空内容,那么脚本标签将有一个单独的闭合标签:
script( '', type:'text/javascript', src:'//example.com/example.js' )

3

或者您可以使用

脚本(type:'text/javascript',src:'//example.com/example.js){mkp.yield("")}


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接