2013-02-04 8 views
5

Sto utilizzando la richiesta jquery ajax che ottiene il contenuto HTML dal codice back-end. Se lo stato è OK, aggiungo contenuto HTML a un div. Sto usando il seguente codice per aggiungere div usando jquery ajax. come $('#divElm').html(response.data);. Ma dopo aggiungendo sto ottenendo seguente errore:SyntaxError quando si utilizza jQuery.html per inserire un frammento HTML contenente un elemento di script

SyntaxError: missing } in compound statement

Il contenuto rendering HTML da backend (. Cioè, response.data) contiene i seguenti che sta causando questo errore:

<script type="text/javascript"> 
function init() { 
if(d.getElementById('normal')){ 
    window.normalPop= d.getElementById('normal'); 
    //complicated is local 
    var complicated= normalPop.parentNode.removeChild(normal); 
    d.getElementsByTagName('body')[0].appendChild(complicated); 
    } 
} 
addLoadEvent(init); 
</script> 

Non sono sicuro perché questo errore "SyntaxError: missing} nell'istruzione composta" è in arrivo. Le parentesi graffe si stanno chiudendo correttamente nel codice.

Se sto usando innerHTML invece di html() funziona correttamente. Nessun errore è il rendering.

+3

Il tuo codice non mostra alcun jQuery - mancano alcune parti? – MarcoK

+0

@MarcoK È lì - '$ ('# divElm'). Html (response.data)', dove 'response.data' è accusato di * contenere * la grande sezione del codice postato. –

+1

Come è "troppo localizzato"? È un problema comune in Jquery: Jquery può generare un errore a causa dello script incluso in esso. La soluzione è avere un try-catch attorno a '.html (...)'. – NoBugs

risposta

2

The.html() utilizza .append() che inturn utilizza domManip() che esegue lo sniffing e l'esecuzione dello script. Per questo motivo, il codice dello script proveniente dal backend è stato eseguito e ha causato l'errore "SyntaxError: missing} nell'istruzione composta". Ho studiato tramite il codice dello script, le righe di commento (//) nel codice dello script rendono anche qualche commento al codice JS. Quindi, dopo aver modificato la singola riga (//) in commenti su più righe (/ ** ** /). riparato. Grazie per tutto per il tuo tempo.

+1

ha avuto lo stesso problema qui, incredibile, che un commento è il cattivo .. – fr4nk