错误:使用getBBox()时firefox中的NS_ERROR_FAILURE

我想使用方法getBBox()来获取SVG中创建的元素的宽度和高度

在这里,我提供了我的代码,它给出了chrome但不是firefox的结果

请帮我解决一下..

try { console.log(document.getElementById("rect1").getBBox()); console.log(document.getElementById("rect2").getBBox()); } catch (e) { console.log(e); } 
 svg { border: 1px dashed blue; } #rect2 { display: none; } 
     

这是因为通过使用display: none ,不会渲染SVG。 您应该在CSS visibility: hidden或在调用getBBox()之前检查JS中的rect样式。

 console.log(document.getElementById("rect1").getBBox()); console.log(document.getElementById("rect2").getBBox()); 
 svg { border: 1px dashed blue; } #rect2 { visibility: hidden; } 
     

如果你正在使用html模板和css,那么javascript,删除地图类上方属性display:none的类并添加一些新类。

下载加载或执行getbox函数后,通过javascript附加删除的类(具有属性display:none)。

这是简单快捷的解决方案。