我们使用 Node.js、Javascript 和 jQuery 制作的棋盘游戏在 Chrome 和 Firefox 上都能正常运行,但它似乎无法在 Internet Explorer 或 Safari 中启动 Javascript。
这是上传版本的链接: http://burningfreak.com/zb/freelance/wordwars/
我在本地主机和网站上都试过了,我得到了相同的结果。 Chrome 和 Firefox 都很好。 IE 和 Safari 加载了 html 和 css,但大部分是空白的(包括游戏面板)。
为了让它在这些浏览器上运行,我们需要做些什么特别的事情吗?我什至不确定要查看代码的哪个区域,搜索结果也没有产生任何直接相关的内容。
最佳答案
要在 Safari 中查看导致问题的错误,您可以使用错误控制台。这在默认情况下隐藏的“开发”菜单栏菜单中可用。通过 Safari -> 首选项 -> 高级启用它,然后勾选“在菜单栏中显示开发菜单”。一个名为“开发”的新菜单出现在屏幕顶部的菜单栏中。从那里选择“显示错误控制台”,然后加载您的页面。您将看到此错误:
[错误] TypeError: 'undefined' 不是一个函数(评估 'Number.parseInt(gameData[1])') (匿名函数)(app.js,第 1042 行) 调度(jquery.min.js,第 3 行) 句柄(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
.. 是“实验性技术”,大多数浏览器不支持。幸运的是,有一个没有“Number.”的“parseInt()”函数,它根本不是实验性的。最有可能删除“数字”。至少会很好地插入你前进:
var playerNum = parseInt(gameData[1]);
您会注意到的另一个问题是应用程序不断轮询这个不存在的 URL:
http://burningfreak.com/socket.io/?EIO=2&transport=polling&t=1406517881111-30
关于javascript - Node.js 应用程序无法在 Safari 或 Internet Explorer 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24987965/