san*_*hez 16 javascript internet-explorer svg
它可以在任何地方工作,但不是在IE 11(我尚未测试其他IE版本).
var img = new Image();
img.onload = function(){
alert( 'img: ' + img.width + 'x' + img.height +
' natural: ' + img.naturalWidth + 'x' + img.naturalHeight );
};
img.src = 'http://upload.wikimedia.org/wikipedia/en/b/b5/Boeing-Logo.svg';
Run Code Online (Sandbox Code Playgroud)
的jsfiddle: JSFiddle
结果:
img: 121x30 natural: 121x30 - 真正的浏览器(Chrome,Safari,Firefox,...)
img: 0x0 natural: 0x0 - IE 11
这里有一个类似的问题:在IE上获取图像加载时的图像宽度失败
这些答案中没有一个解决方案适用于svg.
有没有办法在Internet Explorer 11中获取用Image()加载的svg文件的宽度和高度?
注意:我正在寻找一个解决方案,而不必将元素添加到DOM进行测量,因为我想避免任何不必要的重新流/重绘.
小智 13
此代码适用于IE11:
var img = new Image();
img.onload = function(){
document.body.appendChild(this);
alert( 'img: ' + this.offsetWidth + 'x' + this.offsetHeight);
document.body.removeChild(this);
};
img.src = 'http://upload.wikimedia.org/wikipedia/en/b/b5/Boeing-Logo.svg';
Run Code Online (Sandbox Code Playgroud)
是的 - 这个解决方案并不理想.