我正在使用 Groovy 1.8 XML MarkupBuilder 构建一个包含<script>
标签的 HTML 页面。
当我在 Firefox 18 中加载页面时,我看到一个空白页面,而不是预期的结果。
这似乎是由于生成的<script>
标签没有补充</script>
标签,即使没有内容可以保证</script>
标签。(参见:https ://stackoverflow.com/questions/69913/why-dont-self-closing-script-tags-work )
示例 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 元素上使用的自关闭语法 (“/>”)。忽略斜线并将其视为开始标签。”
那么,如何<script>
使用 Groovy XML MarkupBuilder 生成有效的 HTML 标记?