Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Flickr API调用IIFE_Javascript_Flickr - Fatal编程技术网

Javascript Flickr API调用IIFE

Javascript Flickr API调用IIFE,javascript,flickr,Javascript,Flickr,使用IIFE总是给我一个未定义的“回调函数名”错误。另一方面,常规加载函数可以正常工作。有什么想法吗 <script type="text/javascript"> (function() { function myfeed(feed) { alert(feed); } var tags = 'potatoes'; var script = document.createElement('script'); script.

使用IIFE总是给我一个未定义的“回调函数名”错误。另一方面,常规加载函数可以正常工作。有什么想法吗

<script type="text/javascript">

  (function() {

    function myfeed(feed) {
      alert(feed);
    }

    var tags = 'potatoes';
    var script = document.createElement('script');
    script.src = 'http://api.flickr.com/services/feeds/photos_public.gne?format=json&jsoncallback=myfeed&tags=' + tags;
    document.head.appendChild(script);


  }());

</script>

(功能(){
函数myfeed(feed){
警报(feed);
}
var标签='马铃薯';
var script=document.createElement('script');
script.src=http://api.flickr.com/services/feeds/photos_public.gne?format=json&jsoncallback=myfeed&tags=“+标签;
document.head.appendChild(脚本);
}());

jsoncallback=myfeed
将寻找一个全局函数。目前,
myfeed
的范围在IIFE内部

如果要使其在全球范围内可用,您需要执行以下操作:

function myfeed(feed) {
  alert(feed);
}

(function() {

  var tags = 'potatoes';
  var script = document.createElement('script');
  script.src = 'http://api.flickr.com/services/feeds/photos_public.gne?format=json&jsoncallback=myfeed&tags=' + tags;
  document.head.appendChild(script);

}());

有什么想法吗?您的
myfeed
函数的作用域已确定,因此它不是全局可用的。您应该执行AJAX调用。如果函数编写不正确,请将最后一行更改为
}()@self编写函数的方式没有问题
}())
也是正确的。您建议的方式只允许传入参数。在这种情况下它是不相关的。那么jsoncallback需要是一个全局函数吗?它不需要是全局函数。但在这种IIFE结构中,它需要保持在独立于IIFE的范围内。