类型错误:网络未定义

时间:2015-10-09 19:24:19

标签: javascript firefox-os

我在我创建的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:网络未定义"。对于已注释的电池状态部分,同样的事情正常工作。它出了什么问题?

1 个答案:

答案 0 :(得分:3)

桌面设备不支持documentation navigator.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但没有错误。