2011-08-24 9 views
6

Mam witrynę php, która działa dobrze w FireFox i Chrome, ale całkowicie zepsuje się w IE.Błąd SCRIPT 600: Niepoprawny element docelowy dla tej operacji

Oto jeden ze skryptów zgłaszających błąd ... SCRIPT600: Nieprawidłowy element docelowy dla tej operacji.

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

Zgłasza błąd na linii ustawiającej innerHTML ... Jakieś pomysły, dlaczego tak się dzieje?

+2

Co to jest element o id 'dealdata'? – Paulpro

+3

Jeśli już używasz jQuery, to dlaczego nie do tego też? '$ ('# dealdata'). html (odpowiedź)'. –

+0

To jest element tbody. –

Odpowiedz

3

Spróbuj tego: czy używasz jquery?

również wygląda jak masz dodatkowy zestaw wsporników tam (myślę między ,{},)

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

'{}' po prostu wysyła pusty obiekt jako parametry GET, nie powinien niczego rozbić. –

+0

ale jej niepotrzebne http://api.jquery.com/jQuery.get/ –

+0

Nie wiedziałem, że chociaż dobrze jest wiedzieć o przyszłym debugowaniu. –

12

IE ma problem zastępując zawartość TBODY z innerHTML. Podane powyżej jQuery działa; jeśli nie korzystasz z jQuery, innym rozwiązaniem jest posiadanie na stronie <div id='helper' style='visibility:hidden'/> - kiedy przychodzi odpowiedź, wpisz wartość z otaczającym tagiem <table> do ukrytego elementu div, a następnie użyj DOM, aby usunąć starą zawartość z widocznego tagu i wstaw elementy z ukrytego tagu 1 przez 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

Dla wszystkich: Jeśli napotkasz ten błąd w ASP.NET MVC z "Ajax.BeginForm" - najprawdopodobniej "UpdateTargetId" jest tabelą. Dodaj otaczający DIV i odpowiednio zmień "UpdateTargetId". – Alex

Powiązane problemy