我为我正在制作的游戏制作了一台服务器,它为我生成了一张地图,但在我正在制作的这个测试客户端上,它无法正常工作。
我将网站添加为脚本,并且它作为脚本工作正常,但是当读取jsfiddle上的javascript时,它表示函数callback()没有定义,但显然是,它应该发送地图对象到控制台,但它只是错误...:/
这是JS小提琴的链接: http://jsfiddle.net/Tgwizman/9QrUF/
我希望你们能搞清楚,因为我完全迷失了为什么它不起作用......
答案 0 :(得分:6)
在你的jsfiddle中,javascript回调函数是在用你的javascript include加载地图后定义的,此时你的回调还没有定义。
这是一个固定的fiddle。
示例来源:
<script>
var map;
function callback(cb) {
map = cb;
console.log(map);
}
</script>
<script src='http://mmorpg_server.jit.su/?map=0,0'></script>
答案 1 :(得分:3)
答案 2 :(得分:2)
The callback must be defined before the map is loaded。否则,您正在调用未定义的函数。外部脚本可以按任何顺序下载,但按照它们编码到页面中的顺序执行。
<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>
答案 3 :(得分:0)
这是因为jsFiddle并不总是完美无缺。
它发生是因为jsfiddle将脚本元素包装在它们自己的包装器(闭包)中,因此无法访问在它们中声明的任何函数
没关系,KARASZI István's和Joseph's答案更好
答案 4 :(得分:0)
<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>
希望这会起作用!!!