※ ChatGPTを利用し、要約された質問です(原文:Jsonpのコールバック関数に内に引数を渡すには?)
Jsonpのコールバック関数に引数を渡す方法は?
2007/01/09 02:43
このQ&Aのポイント
APIで返されたJsonpコールバック関数に引数を渡す方法を教えてください。
引数を渡さない場合と、コールバック関数内のデータを変数に入れて使用する方法と比較して、どちらが良いでしょうか。
また、コールバック関数内に渡そうとした引数を使用する方法は正しいのでしょうか。
Jsonpのコールバック関数に内に引数を渡すには?
APIで返されたJsonpコールバック関数に引数を渡したいのですが、やり方が判りません。
それともそもそも、間違っていて
1.引数を渡さない
2.コールバック関数内のデータを一旦変数にいれてコールバック関数内から取り出す。
3. 2で取り出したコールバック関数内のデータと1で渡そうとしていた引数を使う。
とやったほうがいいのでしょうか。
当方経験が浅いためよくわかっていません。基本的な間違いの可能性が高いと思います。
識者の方ご教授下さい。お願いします。
function start(){
var str = "渡したい引数";
var param = new Object();
param.keyword = '東京';
param.inputcharset = 'utf8';
param.outputcharset = 'utf8';
param.format = 'jsonp';
param.callback = 'jsonp4travelAPI';
var url = 'http://api.4travel.jp/Ver1/SearchAlbum.php?'+obj2query ( param );
// script 要素の発行//ここでAPIへリクエストを送る。
var script = document.createElement( 'script' );
script.type = 'text/javascript';
script.src = url;
document.body.appendChild( script );
}
// 4travel検索終了後のコールバック関数
function jsonp4travelAPI ( data ) {
// データが取得できているかチェック
//
//ここに渡したい引数も持ってきたい。でも str is not definedになります。
alert(str);
}
// オブジェクトからクエリー文字列を生成する関数
function obj2query ( obj ) {
var list = [];
for( var key in obj ) {
var k = encodeURIComponent(key);
var v = encodeURIComponent(obj[key]);
list[list.length] = k+'='+v;
}
var query = list.join( '&' );
return query;
}
window.onload =start;
質問の原文を閉じる
質問の原文を表示する
お礼
なるほど、初歩的なところですね。すぐに答えていただいて非常に助かりました。ありがとうございました。