Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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 为什么说回调没有定义?_Javascript_Json_Callback_Jsfiddle - Fatal编程技术网

Javascript 为什么说回调没有定义?

Javascript 为什么说回调没有定义?,javascript,json,callback,jsfiddle,Javascript,Json,Callback,Jsfiddle,我为我正在制作的游戏制作了一个服务器,它为我生成了一个地图,但是在我正在制作的这个测试客户端上,它不能正常工作 我将站点添加为脚本,它作为脚本运行良好,但是当读取JSFIDLE上的javascript时,它会说函数回调没有定义,但很明显是这样的,它应该将map对象发送到控制台,但只是出错了…:/ 以下是JS Fiddle的链接: 我希望你们能弄明白,因为我完全不明白为什么它不起作用…。否则,您将调用一个未定义的函数。外部脚本可以按任何顺序下载,但执行顺序与它们在页面中的编码顺序相同 <s

我为我正在制作的游戏制作了一个服务器,它为我生成了一个地图,但是在我正在制作的这个测试客户端上,它不能正常工作

我将站点添加为脚本,它作为脚本运行良好,但是当读取JSFIDLE上的javascript时,它会说函数回调没有定义,但很明显是这样的,它应该将map对象发送到控制台,但只是出错了…:/

以下是JS Fiddle的链接:

我希望你们能弄明白,因为我完全不明白为什么它不起作用…

。否则,您将调用一个未定义的函数。外部脚本可以按任何顺序下载,但执行顺序与它们在页面中的编码顺序相同

<script>
    var map;
    //declare callback first before anything uses it
    function callback(cb) {
        map = cb;
        console.log(map);
    }
</script>

//this calls the callback it MUST be loaded after
<script src='http://mmorpg_server.jit.su/?map=0,0'></script>​

在JSFIDLE中,javascript回调函数是在使用javascript包含加载映射之后定义的,此时还没有定义回调

这里有一个固定的

示例来源:

<script>
var map;

function callback(cb) {
    map = cb;
    console.log(map);
}
</script>
<script src='http://mmorpg_server.jit.su/?map=0,0'></script>​
这是因为jsFiddle并不总是完美地工作

这是因为JSFIDLE将脚本元素包装在它们自己的包装器闭包中,因此无法访问其中声明的任何函数

没关系,答案更好

将下拉列表值更改为“无包裹头”


希望这能奏效

这是不正确的,因为文件是在函数定义之后加载的,因为它是通过请求获取数据的。它的真正原因是由于jsfiddleyeah,因为在您的例子中,它不在闭包中。查看原始小提琴的来源和您的观点?小提琴是一种演示。不是实际的代码。如果你想正确地编码,那么就要正确地编码。没有在演示环境中回复参数。你是对的,我错了,我忘了标记是阻塞的。编辑你的答案,这样我就可以重新输入你的提琴,回调函数是在地图加载之前定义的,检查iframe的源代码。你是对的,我错了,我忘了标记是阻塞的。编辑你的答案,这样我就可以修改了
<script type="text/javascript">
var map;

function callback(cb)
 {
    map = cb;
    console.log(map);
}
</script>
<script src='http://mmorpg_server.jit.su/?map=0,0'> 
</script>​