0

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

我将站点添加为脚本,它作为脚本工作正常,但是当读取 jsfiddle 上的 javascript 时,它说函数 callback() 没有定义,但它显然是,它应该发送地图对象到控制台,但它只是出错了......:/

这是 JS Fiddle 的链接:http: //jsfiddle.net/Tgwizman/9QrUF/

我希望你们能弄清楚,因为我完全不知道为什么它不起作用......

4

5 回答 5

6

在您的 jsfiddle 中,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>​
于 2012-04-15T06:58:21.530 回答
3

将下拉值更改为no wrap (head)

截屏

http://jsfiddle.net/9QrUF/3/

于 2012-04-15T06:58:54.787 回答
2

必须在加载地图之前定义回调。否则,您正在调用未定义的函数。外部脚本可以按任何顺序下载,但按照它们被编码到页面中的顺序执行。

<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>​
于 2012-04-15T06:57:16.087 回答
0

这是因为 jsFiddle 并不总是能完美运行。

这是它的工作原理

发生这种情况是因为 jsfiddle 将脚本元素包装在它们自己的包装器(闭包)中,因此无法访问其中声明的任何函数

没关系,KARASZI IstvánJoseph 的答案更好

于 2012-04-15T06:58:38.510 回答
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>​

希望这会奏效!

于 2012-04-15T07:53:44.877 回答