Javascript SVG图像不';不要出现在IE 11上

Javascript SVG图像不';不要出现在IE 11上,javascript,html,internet-explorer,svg,html5-canvas,Javascript,Html,Internet Explorer,Svg,Html5 Canvas,我试图做的是在img源代码中简单地加载SVG,以便以后在画布上绘制它。这在所有现代浏览器中都能正常工作,甚至在IE9、10中也能正常工作,但在IE11中不行。当我走近看时,它仍然称为“onload”,但不加载任何宽度和高度为零的内容。下面是一个非常简单的示例,它从wiki加载一些SVG图像并在div中打印其大小: var imgObj = new Image(); imgObj.onload = function(){ $("#output").html(imgOb

我试图做的是在img源代码中简单地加载SVG,以便以后在画布上绘制它。这在所有现代浏览器中都能正常工作,甚至在IE9、10中也能正常工作,但在IE11中不行。当我走近看时,它仍然称为“onload”,但不加载任何宽度和高度为零的内容。下面是一个非常简单的示例,它从wiki加载一些SVG图像并在div中打印其大小:

var imgObj = new Image();

imgObj.onload = function(){
    $("#output").html(imgObj.width);
};

imgObj.src = 'https://upload.wikimedia.org/wikipedia/commons/1/15/Svg.svg';


现在,如果我在画布上绘制此图像,它将不会显示。

您的问题似乎不是图像没有显示,而是没有与SVG相关的
width
。隐藏{
溢出:隐藏;
宽度:0px;
高度:0px;
}

谢谢你的回答,大卫!遗憾的是,此修复程序无法处理我的图像,因为有时(5/10)它返回错误的svg大小。不是(0,0),而是比实际尺寸小10倍的东西。例如,取而代之的是(980622),它有时会返回(28,30)。我通过在onload处理程序中处理图像大小之前添加一个小的超时,神奇地解决了这个问题。因此,如果有人在这里遇到同样的问题,那么简单的解决方法是:
imgObj.onload=function(){setTimeout(function(){document.querySelector(“#output”).textContent=imgObj.width;},300);}
var hiddenDiv = document.createElement("div");
hiddenDiv.classList.add("hidden"); 
.hidden{
    overflow:hidden;
    width:0px;
    height:0px;
}
var imgObj = document.createElement('img'); //Note, new Image() is an artifact from
                                            // older times and synonymous for this
hiddenDiv.appendChild(imgObj);
document.body.appendChild(hiddenDiv);
imgObj.onload = function(){
    document.querySelector("#output").textContent = imgObj.width;
};
imgObj.src = 'https://upload.wikimedia.org/wikipedia/commons/1/15/Svg.svg';