2013-02-13 10 views
6

Groovy 1.8 XML MarkupBuilderを使用して、<script>タグを含むHTMLページを作成しています。Groovy XML MarkupBuilderを使って有効な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> 

タグの「/」は、 で表示され、「/」の上にマウスを置くと「非公開」構文で使用される自己閉じ構文(「/>」) -hoid HTML要素。スラッシュを無視し、aとして扱う開始タグ。

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

答えて

9

あなたには、いくつかの空のコンテンツを定義する場合、スクリプトタグは、個別の終了タグを持つことになります。

script('', type:'text/javascript', src:'//example.com/example.js') 
+0

ニースを使用することができます!ありがとう、これは完全に動作します! – m0j0hn

2

別の方法としては、

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

関連する問題