访问和操作对象标签内的 svg 组
Acess and manipulate groups of an svg that is inside of an object tag
例如,我有这段代码,我知道如何操作:
<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 脚本对象来操纵组 "box":
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 内的框组?
只要 SVG 与您的页面同源,您就可以通过对象的 contentDocument.
访问它
<html>
<object data="my_svg.svg" id="box"></object>
</html>
document.getElementById("box").contentDocument.children[0] // should be the svg element
例如,我有这段代码,我知道如何操作:
<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 脚本对象来操纵组 "box":
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 内的框组?
只要 SVG 与您的页面同源,您就可以通过对象的 contentDocument.
访问它<html>
<object data="my_svg.svg" id="box"></object>
</html>
document.getElementById("box").contentDocument.children[0] // should be the svg element