Javascript 映射Api v3自定义控件不适用于IE8
我为“地图”应用程序使用自定义控件。它在FF、Safari、Chrome和IE9上运行良好,但在IE8或IE7上似乎没有触发更改事件?这里出了什么问题:Javascript 映射Api v3自定义控件不适用于IE8,javascript,google-maps,Javascript,Google Maps,我为“地图”应用程序使用自定义控件。它在FF、Safari、Chrome和IE9上运行良好,但在IE8或IE7上似乎没有触发更改事件?这里出了什么问题: function bf_mapstyle_Control(controlDiv, map) { controlDiv.style.paddingTop = '5px'; controlDiv.style.paddingRight = '20px'; // Set CSS for the control border var
function bf_mapstyle_Control(controlDiv, map) {
controlDiv.style.paddingTop = '5px';
controlDiv.style.paddingRight = '20px';
// Set CSS for the control border
var controlUI = document.createElement('DIV');
controlDiv.appendChild(controlUI);
// Set CSS for the control interior
var controlText = document.createElement('DIV');
controlText.innerHTML = '<select id="select_mapstyle" style="font-family: Verdana,Arial,sans-serif; font-size : 12px; border: 1px solid #D8D8D8;border-radius: 3px; padding: 5px;">' +
'<option value="0">Google Karte</option>' +
'<option value="1">Google Satellit</option>' +
'<option value="2" selected>OpenStreetMap</option>' +
'<option value="3">OpenCyleMap</option></select>';
controlUI.appendChild(controlText);
google.maps.event.addDomListener(controlUI, 'change', function() {
var tid = document.getElementById('select_mapstyle').value;
changeMapType(tid);
});
};
function changeMapType(inType){
switch (inType){
case '0' : map.setMapTypeId(google.maps.MapTypeId.ROADMAP);
break;
case '1' : map.setMapTypeId(google.maps.MapTypeId.HYBRID);
break;
case '2' : map.setMapTypeId('OSM');
break;
case '3' : map.setMapTypeId('OSM Cycle');
break;
}
}
函数bf\u mapstyle\u控件(controlDiv,map){
controlDiv.style.paddingTop='5px';
controlDiv.style.paddingRight='20px';
//为控件边框设置CSS
var controlUI=document.createElement('DIV');
controlDiv.appendChild(controlUI);
//为控件内部设置CSS
var controlText=document.createElement('DIV');
controlText.innerHTML=''+
“谷歌卡丁车”+
“谷歌卫星”+
“开放街道地图”+
“OpenCyleMap”;
controlUI.appendChild(controlText);
google.maps.event.addDomListener(controlUI,'change',function()){
var tid=document.getElementById('select_mapstyle')。值;
更改地图类型(tid);
});
};
函数changeMapType(inType){
开关(inType){
案例“0”:map.setMapTypeId(google.maps.MapTypeId.ROADMAP);
打破
案例“1”:map.setMapTypeId(google.maps.MapTypeId.HYBRID);
打破
案例“2”:map.setMapTypeId('OSM');
打破
案例“3”:map.setMapTypeId('OSM循环');
打破
}
}
IE中的“change”事件不会在DOM中冒泡(我想可能是在IE9中)。您必须将事件处理程序放在
元素本身上