我正在使用 Bing Maps Ajax Control 6.3,之前我成功地附加了一个点击事件,但现在我在另一个页面上收到以下错误,我试图重复相同的行为:
Error: DISPATCH_REQUEST_ERR: DOM Events Exception 1
该错误在 Chrome 中引发。我尝试了 IE10,控制台抛出:
error TypeError: Unable to get property 'GetCurrentDefaultSymbol' of undefined or null reference
这是我加载地图并附加事件的功能:
function GetMap() {
map = new VEMap('myMap');
map.SetDashboardSize(VEDashboardSize.Tiny);
var latLong = new VELatLong(16.864061, -99.882588);
map.LoadMap();
map.SetCenterAndZoom(latLong, 15);
map.AttachEvent("onclick", MouseHandler);
map.AttachEvent("ondoubleclick", MouseHandler);
}
这是我的处理程序:
function MouseHandler(e) {
try{
var pixel = new VEPixel(e.mapX, e.mapY);
var latLong = map.PixelToLatLong(pixel);
points.push(latLong);
if (points.length > 2 && shapeCreated) {
shape.SetPoints(points);
}
if (points.length == 3 && !shapeCreated) {
shape = new VEShape(VEShapeType.Polygon, points);
map.AddShape(shape);
shapeCreated = true;
}
}
catch(e)
{
console.error(e);
}
}
它处理在地图上完成的点击,并在点击 3 次后绘制一个多边形,并在多次点击地图时继续重绘多边形。
我正在做与我之前的尝试完全相同的事情,但我不明白为什么它不起作用。我在这里读到了这个错误,它说这是因为事件已经被调度了,为什么会发生这种情况?
编辑
我将一些变量初始化为null,我删除了null并开始工作,但是当我加载使用形状点的页面时,当我单击时开始显示以下错误:
Invalid argument; input argument 'points[0]' is not a valid 'VELatLong' value.
我在控制台上打印点数组,我看不出有什么问题。这是数组。
[
{
"Latitude": 16.86689437290364,
"Longitude": -99.90971088343942,
"Altitude": null,
"AltitudeMode": null,
"_reserved": null
},
{
"Latitude": 16.861596373665986,
"Longitude": -99.905676841081,
"Altitude": null,
"AltitudeMode": null,
"_reserved": null
},
{
"Latitude": 16.860199977046786,
"Longitude": -99.89400386744819,
"Altitude": null,
"AltitudeMode": null,
"_reserved": null
},
{
"Latitude": 16.864265926727835,
"Longitude": -99.89550590515138,
"Altitude": null,
"AltitudeMode": null,
"_reserved": null
}
]
因此,例如,如果我在调用该页面并将其插入 div 之前创建一个具有 3 个点的形状,我会在地图上显示一个具有 3 个边的多边形,但在该页面加载并插入 div 的那一刻,然后我点击地图,点被添加到点数组中,并尝试用新数组替换当前形状的点,即使在点数组上看到没有问题,也会显示该错误。
此外,发生这种情况后,当我将鼠标悬停在图钉上时,会出现另一个错误:
Unable to get property '1359639624430' of undefined or null reference
这只发生在 IE 上。Chrome 设法更新了形状,但一直显示DISPATCH_REQUEST_ERR: DOM Events Exception 1
错误,而 Firefox 没有显示任何错误关于为什么会发生这种情况的任何想法?