2012-01-08 21 views
6

こんにちはイムは、JSエラー取得しています:ここでの機能はレベルが開き、その「拡大」を作成すると仮定されているキャッチされないでSyntaxError:予期しない識別子

<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> 

Uncaught SyntaxError: Unexpected identifier 

をし、すべてが正常に働いていました私は "タイトル"を追加し、私はエラーが発生し始めたまで。 エラーが最後に私を指すと私はちょうどエラーを見つける傾ける... 私はこの

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

のように私は見ていないよ何のための任意の提案をdisplayDataを呼び出すようにしてください。?

あなたはdisplayData(26,1,0,כיתה ג)が発生したことを言うあなたのコメントで

+4

JavaScriptエラーが発生しました。JavaScriptを表示してください.JavaScriptを生成するPHPは表示されません。 – Quentin

+0

また、エラーを引き起こす行を教えてください。 – Quentin

+0

補足として、 'onxxx'属性を使うべきではありません。代わりに、ページがロードされた後にイベントを要素にバインドします。これは[Unobtrusive Javascript](http://en.wikipedia.org/wiki/Unobtrusive_JavaScript)と呼ばれます。同様に、 'innerHtml'を使うことは、[XSS injection vulnerabilities](http://en.wikipedia.org/wiki/Cross-site_scripting)のレシピです。 jQueryなどのライブラリを使用することを強くお勧めします。 – phihag

答えて

8

ありがとうございました。これは症状を説明しています。最後のパラメータにはヘブライ文字に加えてスペースも含まれているため、JavaScriptインタープリターはスペースで区切られた2つの識別子として認識し、識別子はおそらく未定義です。 Google Chromeは、あなたが記述したエラーメッセージを提供しますが、FirefoxとIEは引数リストの後に "不足しています"というエラーメッセージを表示します)。

最終的なパラメータは最後のパラメータが ' 。それらを含む世代を変更する必要があります。

+0

ありがとうございます –

+2

別のブラウザでコンソールを確認してください。ブリリアント! – DigitalDesignDj

関連する問題