我正在尝试获取gzip压缩文件的内容并将其附加到HTML并使用d3.js
处理元素。一切都很好,SVG文件的所有内容都被解析并使用jquery添加到DOM中,并且所有浏览器都在SVG内容中呈现样式标记,并将所有这些样式应用于除Microsoft Edge之外的SVG元素。
通过在浏览器上直接从文件URL(而不是使用ajax调用)加载SVG文件,Microsoft Edge中的一切都很好。但是,尝试使用ajax获取内容时,它不会渲染样式并显示黑色元素,如下图所示:
这就是通过从Microsoft Edge中的URL加载文件来显示它的方式:
这是我用来调用文件的ajax代码:
var settings = {
"crossDomain": true,
"url": file.svg,
"method": "GET"
};
$.ajax(settings).done(function (response) {
var floorPlanSVG = document.importNode(response.documentElement,true);
$('#appendedFloorPlan').append(floorPlanSVG);
});
这就是如何将SVG的内容添加到DOM中:
除了Microsoft Edge(Google Chrome的屏幕截图)之外,所有浏览器的代码都很好。有没有办法克服这个问题?
答案 0 :(得分:2)
我刚删除document.importNode
,问题现在就解决了:
var floorPlanSVG = response.documentElement;