我知道D3不支持IE8,但我希望能找到适合自己的东西。
我正在尝试使用R2D3 https://github.com/mhemesath/r2d3,但我正在创建的地图仍然无法渲染。随着r2d2加载到页面的头部,我有:
projection = d3.geo.albersUsa()
.scale(700)
.translate([1000*0.3, 400*0.4])
path = d3.geo.path()
mapData = topojson.features(mapJSON, mapJSON.objects.states)
d3.select('svg')
.append('path')
.attr('class', 'states')
.datum(mapData)
.attr('d', path.projection(projection))
这样可以很好地处理铬,但是在ie8中,这并不令人惊讶。
使用r2d3渲染
<svg width="675" height="290">
<path class="states" __data__='[object object]' d="
</svg>
所以看起来path.projection(projection)
的回调实际上并没有被执行或者没有返回任何内容。从而制动html。
此外,我认为r2d3会降级为ie8中的非svg元素。
任何人都有在ie8中呈现d3地图的经验吗?
我见过Making d3.js compatible with IE8/IE9,https://github.com/mbostock/d3/issues/619和其他许多人。
答案 0 :(得分:0)
IE8不支持仅以IE9开头的svg。我既不知道D3也不知道r2d3,但我能为你做的是建议使用http://raphaeljs.com/
它是一个非常棒的JS库,可满足各种需求,并通过浏览器检测以IE8 VML而不是SVG呈现。
如果您在使用RaphaelJS时需要任何帮助,请对此答案发表评论,并提供有关您的地图数据以及您想要使用它的内容的更多信息。
最诚挚的问候。