電子書籍の厳選無料作品が豊富!

http://www.baldanders.info/spiegel/remark/archiv …
このページの下部のサンプルスクリプトを
function getjsonp(url){
で囲ってurlを渡してJSONPデータを処理しようとしたのですが、
hundler is not defined
とエラーが出てしまいます。

サンプルスクリプトのそのままのコードでは動くのです。
オブジェクト指向がよくわかっていないのでどうすればいいか、識者の方教えてください。
宜しくお願いします。

下記がエラーするスクリプトです。

<script type="text/javascript" src="/js/jsr_class.js"></script>
<div id="bookmark"></div>
<script type="text/javascript">
var url ='http://del.icio.us/feeds/json/spiegel?callback=h …
getjsonp(url);
function getjsonp(url){

var oJsr = new JSONscriptRequest(url);
oJsr.buildScriptTag();
oJsr.addScriptTag();

function hundler(data) {
var ul = document.createElement('ul');
for (var i=0, post; post = data[i]; i++) {
var li = document.createElement('li');
var a = document.createElement('a');
a.setAttribute('href', post.u);
a.appendChild(document.createTextNode(post.d));
li.appendChild(a);
ul.appendChild(li);
}
document.getElementById('bookmark').appendChild(ul);
oJsr.removeScriptTag();
}

}
</script>

A 回答 (1件)

恐らく関数を入れ子にしているせいだと思います(getjsonp関数の中でhandler関数が定義されている)。

関数内で定義されたhandler関数は、グローバルスコープから参照できないはずです。

handler関数を、getjsonp関数の外に出してやったらどうでしょう?
    • good
    • 0
この回答へのお礼

おっしゃられたとおりに中からだしたらあっさりいきました。
教えていただき有り難うございました。
本当に助かりました!感謝です!:)



getjsonp(url);


function getjsonp(url){

var oJsr = new JSONscriptRequest(url);
oJsr.buildScriptTag();
oJsr.addScriptTag();
oJsr.removeScriptTag();
}

function hundler(data) {
var ul = document.createElement('ul');
for (var i=0, post; post = data[i]; i++) {
var li = document.createElement('li');
var a = document.createElement('a');
a.setAttribute('href', post.u);
a.appendChild(document.createTextNode(post.d));
li.appendChild(a);
ul.appendChild(li);
}
document.getElementById('bookmark').appendChild(ul);

}

お礼日時:2007/01/02 23:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!