JSONPファイルの読み込み位置について
考えてみたらあたりまえなのだが、結局かなりはまってしまったので、メモ。
JSONPファイルをスタティックに読み込むとき、その位置がJSONPファイル内のコールバック関数の定義より前だと、関数の未定義エラーが発生する。具体的には
<script type=”text/javascript” src=”jsonp.js”></script>
と、書いた後jsonp.jsで呼び出している関数の定義をその下で、
function jsonFeed(json) {
(ここにjsonを受け取った時の処理を)
}
と書くと、jsonp.jsでjsonFeed関数が未定義のエラーとなる。
<script type=”text/javascript” src=”jsonp.js”></script>
を関数の定義より、下に移動すればOK。
まあ、上から下に順番に処理されるから当然といえば当然ですね(-.-)
そんなこと言っていたら、jsonFeed関数の定義をonloadイベント処理でやったらいいじゃんと、指摘された。そっか、そうしたらjsonFeed関数を定義するタイミングには確実にjsonp.jpは読み込まれているのかぁーーーーーー
2013年2月8日 12:28 AM| カテゴリー:JavaScript