我希望在修改外部svg文件时使用外部css / js文件,但是,在将svg文件“导入”到html中时,它的“子标记”(如路径)不会被导入,因此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>我看到了许多我认为无法发挥作用的拟议解决办法。如果有人能解释这些,或者提出他们自己的建议,我会感激的。
提前感谢!
发布于 2020-06-01 13:50:21
如果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>https://stackoverflow.com/questions/62126404
复制相似问题