0

私は自分がやろうとしていることすべてを理解するのにまだ慣れていないので、何が私のコードを壊しているのかについて助けが必要です. 要するに、写真情報を含む json の結果を取得し、使用する必要がある vars に含まれる特定のパラメーターをターゲットにしたいと考えています。

このコードは、jsfiddle で検索するだけで機能します。Flickr の写真の所有者のユーザー名が表示されます。

$.getJSON('http://api.flickr.com/services/rest/?&method=flickr.photos.getInfo&api_key=' + apiKey + '&photo_id=' + photoId + '&format=json&jsoncallback=?',
    function(data) {
        var photoOwner = $.parseJSON(JSON.stringify(data.photo.owner.username));
        $('#photoInfo').html(photoOwner);
});

このコードを JS ファイルの残りの部分に戻すと、エラーが発生します...

Uncaught TypeError: Cannot read property 'owner' of undefined

以下は、私の JS ファイルの簡略化されたバージョンです (apiKey と photoId 変数を除いたもの)。

(function () {
  var s = document.createElement('script');
  s.setAttribute('src', 'http://jquery.com/src/jquery-latest.js');
  s.onload = function () {
jQuery.noConflict();
(function ($) {

    $.getJSON('http://api.flickr.com/services/rest/?&method=flickr.photos.getInfo&api_key=' + apiKey + '&photo_id=' + photoId + '&format=json&jsoncallback=?',
        function(data) {
            var photoOwner = $.parseJSON(JSON.stringify(data.photo.owner.username));
        $('#photoInfo').html(photoOwner);
    });

}(jQuery));
};
document.getElementsByTagName('body')[0].appendChild(s);
}());

コードが機能することはわかっています... JSファイルにコードを入れると、なぜ機能しなくなるのかわかりません。これを行うためのヘルプ、アドバイス、説明、またはより良い方法をいただければ幸いです。

4

1 に答える 1