2015-04-09 9 views
8

Viene visualizzato questo errore quando tento di inserire gli operatori < o > all'interno del javascript thymeleaf.Maggiore di> Meno di <dentro thymeleaf javascript ... Errore: Il contenuto degli elementi deve essere costituito da dati carattere ben definiti o markup

Il mio codice

<script th:inline="javascript"> 
    $(document).ready(function() { 
     ... 
     if(timeRemain < 0){ 
      ... 
     } 
     ... 
     var result = (hours < 10 ? "0" + hours : hours) + ":" + (minutes < 10 ? "0" + minutes : minutes) + ":" + (seconds < 10 ? "0" + seconds : seconds); 
     ...   
    }); 
</script> 

Messaggio di errore

org.xml.sax.SAXParseException: The content of elements must consist of well-formed character data or markup.

Come posso risolvere questo problema?

+2

E 'bene chiedere e rispondere alla tua domanda in generale, ma quando le informazioni che fornisci sono [proprio lì, molto chiaramente (non lontanamente nascoste) nella documentazione] (http://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#script-inlining- javascript-and-dart), non c'è motivo di avere la domanda/risposta su SO. –

+2

Beh, anche se hai detto che non c'è uno scopo, questa domanda ha servito più di 1k viste con pochi pollici in su. Ne sono felice, dato che questo post aiuta gli sviluppatori in qualche modo. –

risposta

20

Questo problema è stato risolto con l'aggiunta CDATA al tag script come di seguito

<script th:inline="javascript"> 
     /*<![CDATA[*/ 
     ... 
     ... 
     ... 
     /*]]>*/ 
    </script> 
1

Oltre ad utilizzare CDATA è anche possibile codificare < as &lt; e > as &gt;

+1

Grazie. Ma mi sono stancato e questo errore è 'Uncaught SyntaxError: Unexpected token;' nella console. –

+0

@FarajFarook: - Puoi condividere come hai provato? –

+0

L'ho fatto in questo modo 'var result = (ore > 10?" 0 "+ ore: ore) ...' senza 'CDATA' –

Problemi correlati