人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

以下のJavaScriptが動きません。
FxやChromeでは動くのですがIE7/8ではうごきません。
prototype1.6.0.3を使用しています。
forを抜けた後のalertが動かず、困っています。アドバイスお願いいたします。

>||
function load(){
new Ajax.Request(prjlist, {method:'get',onComplete:displayResult});
}

function displayResult(req){
data = req.responseText.evalJSON();
html = '<div><form name=\"prjlist\">プロジェクト:<select id=\"template\" name=\"template\" onChange=\"selectprj()\"><option value=\"\" selected=\"selected\">選んでください</option>';
for(i=0;i<data.projects.length;i++){
html = html += '<option value=\"'+ data.projects[i].prjfile.escapeHTML() + '\">';
html = html += data.projects[i].name.escapeHTML() + '</option>';
alert (html); // ←このアラートは作動する。JSONのデータも文字列で受け渡している。
}
alert (html); // ←このアラートは作動しない…
html = html += '</select></form></div>';
}
||<

●質問者: astrocyte
●カテゴリ:ウェブ制作
✍キーワード:Ajax chrome Fx HTML IE7
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● kebo987654
●100ポイント ベストアンサー

projects.json.projectsのコーディングを修正してみたらなおりました。

[
{
"name": "テスト1",
"prjname": "test1",
"prjfile": "test1.json"
},
{
"name": "テスト2",
"prjname": "test2",
"prjfile": "test2.json"
}// コンマを取り除きました。
]

IE7/8では配列の最後にコンマを入れると配列の長さが1増える謎仕様になっているようです。

参考→Javascript: 配列初期化時の余分なカンマによる配列の要素数がブラウザにより異なる問題 - seclan のほえほえルーム

◎質問者からの返答

ありがとうございました!ちゃんと動きました。

ちゃんと、自分でJSON Validator等で確認しておけばよかったですね。。

勉強になりました。ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ