我们使用Node.js制作的棋盘游戏,Javascript和jQuery在Chrome和Firefox上都能正常运行,但它似乎不能在Internet Explorer或Safari中启动Javascript。
以下是上传版本的链接: http://burningfreak.com/zb/freelance/wordwars/
我从localhost和网站都尝试过,我得到了相同的结果。 Chrome和Firefox都很好。 IE和Safari加载html和css,但是大部分是空白的(包括游戏板)。
为了让它在这些浏览器上运行,我们需要做些什么特别的事情吗?我甚至不确定要查看的代码区域,搜索结果没有产生任何直接相关的内容。
答案 0 :(得分:4)
要在Safari中查看导致问题的错误,您可以使用错误控制台。这可以在" Develop"菜单栏菜单默认隐藏。通过Safari启用它 - >偏好 - >高级,然后检查"菜单栏中的显示开发菜单"。一个名为" Develop"出现在屏幕顶部的菜单栏中。从那里,选择"显示错误控制台"然后加载您的页面。您将看到此错误:
[错误] TypeError:' undefined'不是一个函数(评估' Number.parseInt(gameData [1])') (匿名函数)(app.js,第1042行) dispatch(jquery.min.js,第3行) handle(jquery.min.js,第3行) 触发器(jquery.min.js,第3行) (匿名函数)(jquery.min.js,第3行) 每个(jquery.min.js,第2行) 每个(jquery.min.js,第2行) 触发器(jquery.min.js,第3行) (匿名函数)(app.js,第1018行)
这归结为Number.parseInt()函数,根据MDN ...
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/parseInt
..是"实验技术",并且在大多数浏览器上都不受支持。幸运的是,有一个" parseInt()"函数没有"数字。",这根本不是实验性的。最有可能删除"数字。"至少会让你顺利前进:
var playerNum = parseInt(gameData [1]);
您会注意到的另一个问题是应用程序会继续轮询此不存在的网址:
http://burningfreak.com/socket.io/?EIO=2&transport=polling&t=1406517881111-30