2011-08-24 11 views
6

Ho un sito php che funziona bene in FireFox e Chrome, ma si interrompe completamente in IE.Errore SCRIPT 600: elemento target non valido per questa operazione

qui è solo uno degli script che sta gettando un errore ... SCRIPT600: elemento di destinazione non valido per questa operazione.

function loadDeals() { 
    $.get("modules/recommendations/viewrecommendations.php",{},function(response){ 
     document.getElementById("dealdata").innerHTML = response; 
    }); 
} 

Getta l'errore sulla linea che imposta il innerHTML ... Qualche idea del perché questo sta accadendo?

+2

Qual è l'elemento con id 'dealdata'? – Paulpro

+3

Se usi già jQuery, perché non farlo anche per quello? '$ ('# Dealdata'). Html (risposta)'. –

+0

È un elemento tbody. –

risposta

3

Prova questo: stai usando jquery?

guarda anche come si dispone di un ulteriore set di staffe in là (credo tra ,{},)

function loadDeals() { 
    $.get("modules/recommendations/viewrecommendations.php",function(response){ 
     $("#dealdata").html(response); 
    }); 
} 
+0

'{}' sta solo inviando un oggetto vuoto come parametri GET, non dovrebbe rompere nulla. –

+0

ma non è necessario http://api.jquery.com/jQuery.get/ –

+0

Non lo sapevo, anche se questo è utile per il debugging futuro. –

12

IE ha un problema di sostituzione contenuti TBODY con innerHTML. Il jQuery di cui sopra funziona; se non stai usando jQuery, un'altra soluzione è avere un <div id='helper' style='visibility:hidden'/> da qualche parte nella pagina - quando arriva la risposta, inserisci il valore con un tag <table> circostante nel div nascosto, quindi usa il DOM per rimuovere i vecchi contenuti dal tuo tag visibile e inserisci gli elementi dal tag nascosto 1 per 1:

var a=document.getElementById("dealdata"); 

while(a.firstChild!=null) 
    a.removeChild(a.firstChild); 

var b=document.getElementById("helper"); 
b.innerHTML="<table>"+this.responseText+"</table>"; 
while(b.tagName!="TR") { 
    if(b.tagName==null) 
    b=b.nextSibling; 
    else 
    b=b.firstChild; 
} 
for(;b!=null;b=b.nextSibling) 
    a.appendChild(b); 
+0

Per tutti: se si sta verificando questo errore in ASP.NET MVC con "Ajax.BeginForm", molto probabilmente "UpdateTargetId" è una tabella. Aggiungi un DIV circostante e modifica "UpdateTargetId" di conseguenza. – Alex

Problemi correlati