为什么我的地图在IE8中不起作用?

时间:2013-07-10 19:16:13

标签: javascript dojo gis

我开发了一个可在Chrome,FireFox和更新的IE中运行的WebApp。大多数功能在IE8中不起作用。

用户输入邮政编码,地图缩放到邮政编码,显示相关的投递路线,并用路线中的所需数据填写表格。

在IE8中,地图不会缩放到路径范围,也不会填充表格。 这是我的代码,应该缩放到邮政编码的功能:

function displayResults(results,messages){     var featureset = results [0] .value;

var simplePolySymbol = new esri.symbol.SimpleFillSymbol();
simplePolySymbol.setOutline(new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([0, 96, 170, .75]), 1));

dojo.forEach(featureset.features, function (feature) {
    feature.setSymbol(simplePolySymbol);

    resultsLayer.add(feature);
});

myMap.addLayer(resultsLayer);
myMap.Search.handleStats(results, messages);

var extent = esri.graphicsExtent(featureset.features);
myMap.setExtent(extent, true);
}

这是我的代码,它应该使用路径数据填充表格:

myMap.Search = {
gpGetStats: new esri.tasks.Geoprocessor(gpURL),
getRouteStats: function () {
    console.log(dojo.byId('resultsLayer').value);
    var params = {
        "ZIP_CRID": dojo.byId('resultsLayer').value
    };
    resultsLayer.Search.gpGetStats.execute(params, resultsLayer.Search.handleStats);
},

handleStats: function (results, messages) {
    console.log(results);

    var content = '';

    content += '<table>';
    content += '<tr><td> ZIP CRID </td><td> Bus </td><td> Res </td><td> Tot </td><td> &lt;200 </td><td> DS Key </td></tr>';

    dojo.forEach(results[0].value.features, function (crid, i) {
        console.log(crid.attributes.ZIP_CRID + ', ');
        content += '<tr><td>' + crid.attributes.ZIP_CRID;
        content += '</td><td> ' + crid.attributes.BUS_CNT;
        content += '</td><td> ' + crid.attributes.RES_CNT;
        content += '</td><td> ' + crid.attributes.TOT_CNT;
        content += '</td><td> ' + crid.attributes.LT_200_IND;
        content += '</td><td> ' + crid.attributes.DS_KEY + '</td></tr>';
    });
    content += '</table>';
    dojo.byId('details').innerHTML = content;
},

我很困惑,无法弄清楚要解决的问题。谢谢你的帮助!

2 个答案:

答案 0 :(得分:1)

您可以使用以下内容自行执行此操作,而不是使用dojo库将内容添加到您的html对象中:

var element=document.getElementById('details');
element.innerHTML = content

检查此站点以获取更多信息,请注意该站点显示IE中支持此功能 http://www.w3schools.com/jsref/prop_html_innerhtml.asp

答案 1 :(得分:0)

ArcGIS API for Javascript在IE 8上运行 和dojo在IE 8上运行

但是有一个javascript代码不能直接在IE 8中运行

作为Chrome和firefox

你必须正确编写javascript代码才能在IE 8上运行

并且IE 8无法运行此代码:

dojo.byId('details').innerHTML = content;

此链接可帮助您编写正确的代码以在IE 8上运行

http://msdn.microsoft.com/en-us/library/ie/ms533897(v=vs.85).aspx