出于某种原因,在 Internet Explorer 8(可能还有 7)中,以下代码部分不起作用,有什么想法吗?
var middlelatlong = bounds.getCenter();
//when alerted middlelatlong = (51.65494320798432,0.5499464196260533);
var x = 0;
var keys = new Array();
for(var key in middlelatlong){
if(x <= 1){
keys[x] = key;
}
x++;
}
var southlong = middlelatlong[keys[0]]-0.00017;
在 Internet Explorer 8 中返回 NaN
,但在所有其他浏览器中它等于 51.654790472326724
。
最佳答案
我不知道你想用你的代码实现什么,但我假设 middlelatlong[keys[0]]
返回一些不是数字的东西。
您似乎正在使用 Google Maps API,并且您想要访问坐标的纬度部分。您应该阅读 document正确使用 API 来访问信息,而不是您自己尝试提取信息。
如果getCenter
指的是the method described here , 然后它返回一个 LatLng
目的。然后,您可以使用 lat()
访问纬度(或者如果您需要经度,请使用 lng()
):
var southlong = bounds.getCenter().lat() - 0.00017;
你的问题是你正在假设一个对象的属性被遍历的顺序,但是这个顺序没有定义,这是依赖于实现的。所以你不能说前两个属性就是坐标,对象还有其他属性,在IE中可能会先遍历。
关于javascript - IE8 返回 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8012786/