我想在更改外部svg文件时使用外部css / js文件,但是,在将“ 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>
我已经看到了许多提议的解决方案,但我认为它们没有起作用。如果有人可以解释这些或提出自己的建议,我将很感激。
谢谢!
答案 0 :(得分:1)
如果SVG具有same host as a document,则可以使用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>