Internet Explorer でこれらの問題のデバッグを開始するまで、Ajax 呼び出しで返されたコードをデバッグする際にいくつかの問題がありました。具体的には、json で返された関数 (Firefox ではエラーがトラップされません)。 Venkman もこれらのエラーを検出しないため、firefox 関連の問題) Ajax 呼び出しから json で返されたコードをデバッグする方法を知っていますか?
編集済み 2009 年 3 月 4 日 15:05
皆さんの回答に感謝しますが、私は自分自身を十分に説明していないと思います. 基本的なデバッグを行うには十分な Firebug の知識がありますが、問題のあるコードを Ajax 呼び出しでフェッチすると問題が発生します。次の HTML ファイルがあるとします (正しく動作させるには、同じフォルダーにプロトタイプが必要です)。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<script type="text/javascript" src="prototype.js"></script>
</head>
<body>
<script>
function ajaxErrorTest()
{
new Ajax.Request('data.json', {
'method': 'get',
'onSuccess': function(data){
if(data.responseJSON.func)
data.responseJSON.func();}});
}
</script>
<input type="button" value="test" onclick="ajaxErrorTest();" />
</body>
</html>
そして、data.json ファイルの内容は次のとおりです。
{'func':function(){console.log('loaded...');alert('hey');}}
ブラウザーにページをロードして [テスト] ボタンをクリックすると (そしてすべてがうまくいくと)、コンソールに何かが表示され、「ちょっと」という警告ボックスが表示されます。次に、data.json ファイルを次のように変更します。
{'func':function(){console.log('loaded...');alerts('hey');}}
...[テスト] ボタンをもう一度クリックします (ページをリロードする必要はありません ;-) コンソール ラインが表示されますが、警告ボックスは表示されません...そしてエラーはありません!!! これは、私がデバッグしようとしている種類のエラーです。