要在html页面中添加svg图形,通常使用object标签将其包装为:
如果您不在object标签中使用width和height属性,则svg将以完整大小显示.通常我从Open Graphics Library获取svg文件进行测试.有没有办法通过使用JavaScript获得svg的大小?或者我可以只看一下svg xml文件,找出顶级svg标签的大小?
见http://dev.opera.com/articles/view/svg-evolution-not-revolution/?page=2
只要SVG文件在同一个域上,就可以访问由HTML:对象引用的SVG DOM(否则这将是一个安全漏洞.如果你的对象标签有id ="myobj",你会这样做:
var obj = document.getElementById("myobj"); // reference to the object tag var svgdoc = obj.contentDocument; // reference to the SVG document var svgelem = svgdoc.documentElement; // reference to the SVG element
然后,您可以通过以下方式访问svg元素的宽度/高度:
svgelem.getAttribute("width") svgelem.getAttribute("height")
请注意,这些属性可能是"100px","300","200em","40mm","100%"之类的内容,因此您需要仔细解析它.