1

I implemented a zoom to feature extent function in my code, it works fine in new FireFox, Chrome, and IE10, but the tester's are having troubles with it in IE8. I noticed that all the data shows up on the map and in the table, yet it doesn't zoom. What am I doing wrong? Here is where I call my zoom function.

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);
}

Also my table doesn't populate in IE8, althought im seeing the values I need in the console. Here is my table code:

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;
    },
  • Can you post a link to the website? – CLJ Jul 4 '13 at 3:10
  • It's a test site run on our in-house servers I don't think a link would work. – Maksim Jul 5 '13 at 12:06
  • I would try to help, but I would need an example of it running somewhere. Could make functional jsfiddle and pull in services from esri. – CLJ Jul 5 '13 at 12:11
  • jsfiddle.net/3yN3A There is limited functionality here because we get our data from secure servers so not too sure how much it will help, but here it is! – Maksim Jul 5 '13 at 12:29
  • Is the problem present in the JSFiddle? How do I reproduce it? – CLJ Jul 7 '13 at 23:36
2

Changing:

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

to:

leftDivBot.innerHTML = content

fixed all of my problems. I had a table with id=details in the leftDivBot section, ended up removing the table section all together and still got the results I needed.

-1

IE 8 has very limited HTML 5 support. You might try using developer tools in IE 10 to emulate IE 8 and look for script errors. But if your vendor code isn't IE 8 compatible your best bet is to have your users install the Chrome frame.

http://www.google.com/chromeframe?prefersystemlevel=true

We've used it, your page can auto-detect whether it's there and prompt for upload. Unfortunately it's scheduled for obsolescence in Jan 2014. Google's position is that people should migrate to modern browsers with proper HTML 5 support... a position I'm inclined to sympathize with.

  • Not sure why HTML5 support is part of this answer. Relying on users to install Chrome frame would be about as likely as having them upgrade to a modern browser. – CLJ Jul 4 '13 at 3:05
  • Lack of HTML5 support is the usual reason why stuff works in other browsers but not in IE 8. A lot of newer libs (in general, not particularly GIS) assume HTML5 compatibility that isn't present in IE 8. If your vendor doesn't support it you usually can't simply hack around that. – Russell at ISC Jul 5 '13 at 14:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.