jsonp について


function yws (json){
var items = json["items"];
for(var i = 0; i < items.length; i++) {
var el = items[i];
text += '<li>' + el["x"] + el["y"] + '</li>';
}
document.getElementById('xxxxx').innerHTML = text;
}

とすると firefox は動きますが、
ieでは「エラー:'x' は Null またはオブジェクトではありません」
となってしまいます。

どこが行けないのか教えてください。

お願いします。

回答の条件
  • 1人1回まで
  • 登録:2008/12/15 23:49:24
  • 終了:2008/12/17 21:14:17

ベストアンサー

id:language_and_engineering No.2

lang_and_engine回答回数170ベストアンサー獲得回数632008/12/17 17:26:42

ポイント35pt

こんにちは。

コメント欄を拝見して,やはりそうだったか…という思いでした。


拙筆ですが,下記の記事の「類似の問題」というところをご覧ください。


JavaScriptの動かないコード (初級編) 配列とオブジェクトの宣言エラー

http://d.hatena.ne.jp/language_and_engineering/20081010/12236057...

配列宣言時の末尾のカンマが問題のようです。

その他の回答(1件)

id:den2sn No.1

den2sn回答回数14ベストアンサー獲得回数52008/12/16 09:42:49

ポイント35pt

ロジック自体は問題無いように思います。

(text変数の初期化がなされていませんが)


「エラー:'x' は Null またはオブジェクトではありません」

というエラーはel変数がnullの場合発生します。


el変数がnullの場合、firefoxでもエラーになると思いますので、

jsonのデータを生成する時点でitemsの中身がおかくなっているかと

推測されます。


このロジック中の問題解決としては


if (el != null) {
     text += '<li>' + el["x"] + el["y"] + '</li>';
}

とelがnullの場合に出力を行わない方法で回避できると思いますが、

なぜjsonのデータがおかしくなるのかは

呼び出し元のソースを確認しないとなんとも言えないと思います。

id:worldtravel

ありがとうございます。

夜に試してみます。

2008/12/16 11:07:23
id:language_and_engineering No.2

lang_and_engine回答回数170ベストアンサー獲得回数632008/12/17 17:26:42ここでベストアンサー

ポイント35pt

こんにちは。

コメント欄を拝見して,やはりそうだったか…という思いでした。


拙筆ですが,下記の記事の「類似の問題」というところをご覧ください。


JavaScriptの動かないコード (初級編) 配列とオブジェクトの宣言エラー

http://d.hatena.ne.jp/language_and_engineering/20081010/12236057...

配列宣言時の末尾のカンマが問題のようです。

  • id:language_and_engineering
    可能でしたら,
    ・JSON生成部のソースコード
    ・JSONの中身
    ・yws()を呼び出している部分のソースコード
    などもコメント欄に掲載お願いします。
    JSON生成部が怪しい気がします。
  • id:worldtravel
    ありがとうございます。

    JSONの中身はphpで書き出しています。
    内容は下記の通りです。

    yws({"title":"sample","items":[{"u":"http://xxxxx","tu":"http://xxxxx","th":"130","tw":"67"},{"u":"http://xxxxx","tu":"http://xxxxx","th":"130","tw":"55"},{"u":"http://xxxxx","tu":"http://xxxxx","th":"170","tw":"82"},]})

    よろしくお願いします。


    かなり省略していますが...

    function ywsSearchOn(){
    var url = 'xxx.php?xxxxxxxxxxxxxx';
    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.charset = 'utf-8';
    script.src = url;
    document.getElementsByTagName('head')[0].appendChild(script);
    }

    function yws (json){
    var items = json["items"];
    for(var i = 0; i < items.length; i++) {
    var el = items[i];
    var text = '';
    html += '<li>' + el["x"] + el["y"] + '</li>';
    }
    document.getElementById("hoge").innerHTML += html;
    }

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません