首页 > 解决方案 > 访问和操作对象标签内的 svg 组

问题描述

例如,我有这个我知道如何操作的代码:

<g id="box">
   <path class="st4" d="M893,577H359c-6.6,0-12-5.4-12-12V323c0-6.6,5.4-12,12-12h534c6.6,0,12,5.4,12,12v242
       C905,571.6,899.6,577,893,577z"/>
</g>
</svg>


<!--External calls-->
<link rel="stylesheet" href="style.css">
<script src="script.js"></script>


</html>

我可以用这个 java 脚本对象操作组“框”:

const svg = document.getElementById("box");

但如果我这样做怎么办:

<html>
    <object data="my_svg.svg"></object>


<!--External calls-->
<link rel="stylesheet" href="style.css">
<script src="script.js"></script>


</html>

如何访问此对象标签中此 svg 内的框组?

标签: javascriptsvgimportincludeexternal

解决方案


只要 SVG 与您的页面同源,您就可以通过对象的contentDocument访问它。

<html>
    <object data="my_svg.svg" id="box"></object>
</html>
document.getElementById("box").contentDocument.children[0] // should be the svg element

推荐阅读