【问题标题】:Type-error : network is undefined类型错误:网络未定义
【发布时间】:2015-10-09 19:24:18
【问题描述】:

我在我创建的一个 firefox 应用程序中有以下代码(它获取网络带宽并将其显示在 id="dynamicdata" 的元素中):

//var battery = navigator.battery || navigator.mozBattery || navigator.webkitBattery;
var network = navigator.connection || navigator.mozConnection || navigator.webkitConnection;

function getData()
{ // document.getElementById("dynamicdata").innerHTML = "The battery is at: " + battery.level*100 + "%";

     document.getElementById("dynamicdata").innerHTML = "The current bandwidth is: " + network.bandwidth + "MbPs";
 }

当我运行我的应用程序时,我在控制台上收到以下错误:“TypeError: network is undefined”。对于注释的电池状态部分,同样的事情可以正常工作。哪里出了问题?

【问题讨论】:

  • 表示所有检查都不适用于浏览器。
  • ^我不确定你到底在问什么..我对这些东西很陌生。
  • 表示“navigator.connection || navigator.mozConnection || navigator.webkitConnection;”不支持它出现的任何一个。
  • 哦.. 如果是这样的话,我永远不会得到“network.bandwidth”的输出吗?我是否需要配置任何东西或下载任何 API?
  • 你有哪个版本的 FirefoxOS?在我的 FirefoxOS 1.3 mozConnection 上存在于导航器对象上,它似乎不需要任何权限。然而,我测试的所有应用程序的带宽始终是Infinity。所以我不确定我们如何限制应用的带宽。

标签: javascript firefox-os


【解决方案1】:

根据documentationnavigator.connection 在桌面设备上不受支持,仅在 Mobile FF 12.0+ 和 Android 2.2+(带有 webkit 前缀)上受支持

Feature         Chrome          Firefox (Gecko) Internet Explorer   Opera           Safari
Basic support   Not supported   Not supported   Not supported       Not supported   Not supported


Feature         Android     Firefox Mobile (Gecko) Firefox OS     IE Mobile       Opera Mobile   Safari Mobile
Basic support   2.2 webkit  12.0[1]                1.4            Not supporte    Not supported  Not supported

编辑:

如果你打错了一个对象属性,JS会返回undefined,因为这个属性是……未定义的。

但是,您得到的错误是 network 未定义,而不是 network.bandwidth 未定义,区别在于

  • 如果 network 未定义,而您尝试访问 network.bandwidth,则会出错
  • 如果network.bandwidth 未定义并且您尝试访问network.bandwidth,您只会得到undefined(没有错误)。

同样,如果network 存在,但您尝试引用network.somerandompropertythatdoesntexist,那么您会得到undefined 但没有错误。

【讨论】:

  • 哦。所以根本不支持!
  • 除非您正在为 FF Mobile 或 Firefox OS 开发,否则似乎不是。
  • 我不知道它有多相关,但我正在关注youtube.com/watch?v=e5WXsGkCBzE 教程..但是那里的人得到“网络带宽未定义”并且有人在 cmets 中指出他正在使用“网络.bandwith" 而不是 "network.bandwidth"
  • 另请注意,虽然文档当前列出了对 navigator.battery 的支持,但它已被弃用并将被删除 (link)
  • 编辑:我将此评论移至答案,因为这里的格式很糟糕。
猜你喜欢
  • 1970-01-01
  • 2019-10-31
  • 2016-08-07
  • 2019-01-07
  • 2020-01-28
  • 2021-10-24
  • 2014-10-17
  • 2022-01-10
  • 2019-12-24
相关资源
最近更新 更多