我希望能够通过JavaScript函数确定SVG元素(即SVGSVGElement)的viewBox。调用:
svgElement.getAttribute("viewBox")
当元素上显式设置了viewBox时,这个功能可以很好地运行。但我不能假设这种情况总是存在。例如,我希望我的函数能够在所有这些标记中起作用:
(400, 100) <svg width=400 height=100></svg>
(400, 100) <svg width="400px" height="100px"></svg>
(400, 100) <svg style="width: 400px; height: 100px"></svg>
(100, 25) <svg viewBox="0 0 100 25" style="width: 400px; height: 100px"></svg>
(100, 25) <svg viewBox="0 0 100 25" width=400 height=100></svg>
(括号中的值是函数应在每种情况下返回的内容)。我希望能够在所有支持SVG且在所有缩放级别上都能实现此目标的浏览器中完成此操作。
这里有一个JSFiddle,其中包含一次(失败的)尝试:http://jsfiddle.net/w4BTD/1/