【问题标题】:Node.js Application Doesn't Run in Safari or Internet ExplorerNode.js 应用程序无法在 Safari 或 Internet Explorer 中运行
【发布时间】:2014-07-28 03:14:17
【问题描述】:

我们使用 Node.js、Javascript 和 jQuery 制作的棋盘游戏在 Chrome 和 Firefox 上都能正常运行,但它似乎无法在 Internet Explorer 或 Safari 中启动 Javascript。

这是上传版本的链接: http://burningfreak.com/zb/freelance/wordwars/

我从本地主机和网站都试过了,我得到了相同的结果。 Chrome 和 Firefox 都很好。 IE 和 Safari 加载 html 和 css,但是大部分是空白的(包括游戏板)。

为了让它在这些浏览器上运行,我们需要做些什么特别的事情吗?我什至不确定要查看代码的哪个区域,并且搜索结果没有产生任何直接相关的内容。

【问题讨论】:

  • 在 Safari 上,我看到以下错误:[Error] TypeError: 'undefined' is not a function (evaluating 'Number.parseInt(gameData[1])') app.js 第 1042 行我在 Chrome 中看不到错误。也许,从那里开始。

标签: javascript jquery node.js internet-explorer safari


【解决方案1】:

要在 Safari 中查看导致问题的错误,您可以使用错误控制台。这在默认隐藏的“开发”菜单栏菜单中可用。通过 Safari -> 首选项 -> 高级启用它,然后选中“在菜单栏中显示开发菜单”。标题为“开发”的新菜单出现在屏幕顶部的菜单栏中。从那里,选择“显示错误控制台”,然后加载您的页面。你会看到这个错误:

[Error] TypeError: 'undefined' is not a function (evalating '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

【讨论】:

  • 是的,这正是问题所在。我知道我们之前已经在其他浏览器上测试过它,但我们一定是在上次更新时破坏了它并且没有注意到。我也没有意识到 Safari 有一个像 Chrome 一样的控制台。非常感谢!
猜你喜欢
  • 2012-06-06
  • 2020-05-25
  • 2013-12-09
  • 1970-01-01
  • 2016-07-28
  • 1970-01-01
  • 2020-06-10
  • 2021-12-16
  • 2022-01-13
相关资源
最近更新 更多