2012-01-08 27 views
6

cześć im Dostaję JS błąd:Uncaught SyntaxError: Nieoczekiwany identyfikator

Uncaught SyntaxError: Unexpected identifier 

tutaj

<script type="text/javascript"> 
var cur_level = 1; 
var ids_arr = new Array(<?php echo $max_level?>); 
var im_here = new Array(<?php echo $max_level?>); 
ids_arr[0] = 1; 
im_here[0] = "|"; 
function displayData(id, level, used, title) 
{ 
if(used){ 
    choice = document.getElementById('divv'+id).innerHTML; 
    document.getElementById('test_div').innerHTML = choice; 

} else { 
    document.getElementById('test_div').innerHTML = ' No lerning paths to show.'; 
    updateLinksDiv(id, level, title); 

    } 
} 

function updateLinksDiv(id, level, title) 
{ 
var links_div_info = document.getElementById('links_parent_'+id); 
var tmpHTML = ''; 
var here = ''; 

for(i=0;i<level;i++){ 
    here+= '->'+im_here[i]; 
    links_div_info = document.getElementById('links_parent_'+ids_arr[i]); 
    tmpHTML += '<div id="divl_'+links_div_info.id+'">'+links_div_info.innerHTML+'</div>'; 
} 
links_div_info = document.getElementById('links_parent_'+id); 
tmpHTML += '<div id="divl_'+links_div_info.id+'">'+links_div_info.innerHTML+'</div>'; 

document.getElementById('links').innerHTML = tmpHTML; 
ids_arr[i] = id; 
im_here[i] = title; 
} 

</script> 


<script type="text/javascript"> 
    window.onload=updateLinksDiv(1 , 0 , "|") ; 
</script> 

funkcje są przypuszczać, aby stworzyć „rozszerzenie”, który otwiera się przy poziomach i wszystko działa dobrze aż dodałem "tytuł" i zacząłem dostawać błąd. błąd wskazuje mi ostatni, a ja po prostu nie mogę znaleźć błąd ... próbuję zadzwonić displayData jak ten

onclick="displayData('.$cat->id.','.$cat->level.',0,'.$cat->title.')" 

jakieś sugestie co nie widzę.?

dziękuję

+4

Masz błąd JavaScript, pokaż nam JavaScript, a nie jakiś PHP, który wygeneruje JavaScript. – Quentin

+0

Powiedz nam również, która linia wyzwala błąd. – Quentin

+0

Na marginesie nie powinieneś używać atrybutów "onxxx". Zamiast tego powiązaj zdarzenia z elementami po wczytaniu strony - nazywa się to [Unobtrusive Javascript] (http://en.wikipedia.org/wiki/Unobtrusive_JavaScript). Podobnie, użycie 'innerHtml' jest receptą na [podatności XSS injection] (http://en.wikipedia.org/wiki/Cross-site_scripting). Gorąco polecam używanie jQuery lub podobnej biblioteki. – phihag

Odpowiedz

8

W swoim komentarzu można powiedzieć, że displayData(26,1,0,כיתה ג) jest generowany. Wyjaśnia to symptomy, ponieważ tutaj ostatni parametr zawiera spację oprócz liter hebrajskich, więc JavaScript interpretator widzi go jako dwa identyfikatory oddzielone spacją, a identyfikatory są prawdopodobnie niezdefiniowane. Google Chrome wyświetla komunikat o błędzie, który opisujesz, podczas gdy Firefox i IE mówią, bardziej enigmatycznie, "brakuje" po liście argumentów. "

Podobno wygenerowany kod ma mieć ostatni parametr w cudzysłowie, np." כיתה ג " . Musisz zmodyfikować pokolenie, aby je zawrzeć.

+0

dziękuję bardzo się różnią –

+2

Sprawdź konsolę w innej przeglądarce, Znakomity! – DigitalDesignDj

Powiązane problemy