2013-02-13 11 views
6

Sto utilizzando Groovy 1.8 XML MarkupBuilder per creare una pagina HTML che include un tag <script>.Come utilizzare Groovy XML MarkupBuilder per creare tag di script HTML validi?

Quando carico la pagina in Firefox 18 vedo una pagina vuota invece dei risultati attesi.

Questo sembra essere dovuto al generata <script> tag non avere un complementare </script> tag, anche se non v'è alcun contenuto per giustificare l'etichetta </script>. (Vedi: https://stackoverflow.com/questions/69913/why-dont-self-closing-script-tags-work)

Esempio codice Groovy:

def builder = new groovy.xml.MarkupBuilder(out) 

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

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

Se esamino il codice HTML della pagina visualizzata (in bianco) tramite "Visualizza Sorgente pagina" di Firefox (Ctrl-U), vedo:

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

Guardando da vicino, vedo il "/" sul tag <script ... /> reso in rosso, e il testo di passaggio del mouse sul '/' dice "Sintassi auto-chiusura (" /> ") utilizzato su un non Evitare l'elemento HTML. Ignorare la barra e trattare come inizia tag. "

Quindi, come posso generare tag HTML <script> validi utilizzando Groovy XML MarkupBuilder?

risposta

9

Se si definiscono alcuni contenuti vuota, poi il tag script avrà un tag di chiusura separata:

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

Nizza! Grazie, funziona perfettamente! – m0j0hn

2

In alternativa è possibile utilizzare

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

Problemi correlati