Документ междоменного содержимого SVG в теге объекта
Допустимо ли иметь SVG с данными в чужом домене, т. Е. (Data = "// da86ge957603k.cloudfront.net/rails/grafitti_logo-f4e8238a87c979c0cf5b41481c982b71.svg"), а затем связать событие загрузки с объектом, а затем получить доступ к объектному SVG DOM через свойство contentdocument? Я могу сделать это, когда SVG находится в локальном домене, но всякий раз, когда я пытаюсь разместить SVG в другом месте, я получаю ошибки «this.contentDocument is null». Я пробовал getSVGDocument (), а также. Я не могу найти нигде, где говорится, что это проблема междоменной безопасности, и из того, что я могу сказать, это должно быть допустимо, если для SVG используется тег объекта (я не использую iFrame). Я ценю, что вы нашли время, чтобы помочь мне. Вот код, который я использую для встраивания объекта и связывания, и пытаюсь получить доступ к DOM (как я уже говорил, это работает, когда SVG находится в локальном домене).
<object id="gangstergraffiti" type="image/svg+xml" data="<%= image_url("grafitti_logo.svg") %>">Gangster</object>
$("#gangstergraffiti").each(function() {
this.addEventListener('load', svgGangsterGraffitiReady, false);
});
function svgGangsterGraffitiReady(){
var graffitistrokes = this.contentDocument.getElementsByClassName('graffiti');
for (var i = 0; i < graffitistrokes.length; i++) {
graffitistrokes[i].setAttribute("stroke", "white");
graffitistrokes[i].setAttribute("fill", "white");
}
}
Дэн