我想用外部的css js文件来修改外部的svg文件,但是,当把svg文件 "导入 "到html中时,它的 "子标签 "如path等没有被导入,因此css和js无法修改它。
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css">
</head>
<body>
<object data="map.svg" type="image/svg+xml"></object>
<script src="map.js"></script>
</body>
</html>
我已经看到了多个建议的解决方案,但我没有看到它的功能。如果有人能解释这些或提出他们自己的解决方案,我将感激不尽。
先谢谢了!
如果SVG文件有 同主机 你可以用 getSVGDocument 从JavaScript中获取SVG文档
<object id="map" data="js.svg" type="image/svg+xml"></object>
<script>
const mapObject = document.getElementById("map");
mapObject.addEventListener("load", () => {
mapObject
.getSVGDocument()
.querySelector("path")
.setAttribute("fill", "red");
});
</script>