В общем получить к тегу object можно только после загрузки то есть
object.addEventListener("load", function (){ здесь обработчик })
В моём случае я сделал так как написал ..
1) Получил object через id
2) Получил содержимое contentDocument
3) По одному сменил fill для каждого
Содержимое index.html
<object data="file.svg" type="image/svg+xml" id="for_svg" width="400px" height="300px"></object>
<script>
document.querySelector("#for_svg").addEventListener("load", function (){
let html = document.querySelector("#for_svg").contentDocument;
let rects = html.querySelectorAll("rect");
rects[0].style.fill = "#222";
rects[1].style.fill = "#fff";
rects[2].style.fill = "#fff";
rects[3].style.fill = "#999";
rects[4].style.fill = "#999";
})
</script>
Содержимое файла svg
<svg viewBox="0 0 460 300" xmlns="http://www.w3.org/2000/svg" width="460" height="300">
<rect width="460px" height="300px" x="0" y="0" />
<g>
<rect width="100px" height="80px" x="0" y="220" />
<rect width="100px" height="120px" x="120" y="180" />
<rect width="100px" height="200px" x="240" y="100" />
<rect width="100px" height="300px" x="360" y="0" />
</g>
</svg>
В итоге получил вот это