6

<script>Groovy 1.8 XML MarkupBuilder を使用して、タグを含む HTML ページを作成しています。

Firefox 18 でページを読み込むと、予期した結果ではなく空白のページが表示されます。

これは、タグを保証するコンテンツがないにもかかわらず、生成された<script>タグに補完的なタグがないことが原因のようです。(参照: https://stackoverflow.com/questions/69913/why-dont-self-closing-script-tags-work )</script></script>

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 の [View Page Source] (Ctrl-U) を使用して (空白の) レンダリングされたページの HTML を調べると、次のように表示されます。

<html>
  <head>
    <script type='text/javascript' src='//example.com/example.js />
  </head>
  <body>
    <p>Hello...Newman.</p>
  </body>
</html>

よく見ると、<script ... />タグの「/」が赤くレンダリングされており、「/」にカーソルを合わせると「非 void HTML 要素で使用される自己終了構文 ("/>") が使用されている」というテキストが表示されます。無視するスラッシュを開始タグとして扱います。」

<script>では、 Groovy XML MarkupBuilder を使用して有効な HTML タグを生成するにはどうすればよいでしょうか?

4

2 に答える 2

9

空のコンテンツを定義すると、スクリプトタグには個別の終了タグが付けられます。

script( '', type:'text/javascript', src:'//example.com/example.js' )
于 2013-02-13T20:02:15.420 に答える
3

または、使用することもできます

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

于 2013-07-22T19:25:13.737 に答える