Domänenübergreifendes SVG-Inhaltsdokument im Objekt-Tag

Ist es 'legal', eine SVG mit Daten in einer fremden Domain zu haben, dh (data = "// da86ge957603k.cloudfront.net/rails/grafitti_logo-f4e8238a87c979c0cf5b41481c982b71.svg") und dann ein Ladeereignis an das Objekt zu binden Greifen Sie dann über die contentdocument -Eigenschaft auf das SVG-DOM des Objekts zu? Ich kann dies tun, wenn sich die SVG in der lokalen Domäne befindet, aber wenn ich versuche, die SVG an einer anderen Stelle zu hosten, erhalte ich die Fehlermeldung "this.contentDocument is null". Ich habe auch getSVGDocument () ausprobiert. Ich kann nirgendwo feststellen, dass es sich um ein domänenübergreifendes Sicherheitsproblem handelt. Soweit ich weiß, sollte dies zulässig sein, wenn ein Objekt-Tag für die SVG verwendet wird (ich verwende keinen iFrame). Ich weiß es zu schätzen, dass Sie sich die Zeit genommen haben, mir zu helfen. Hier ist der Code, den ich verwende, um das Objekt einzubetten, zu binden und auf das DOM zuzugreifen (wie gesagt, dies funktioniert, wenn sich das SVG in der lokalen Domäne befindet).

 <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");
  }
}

Da

Antworten auf die Frage(1)

Ihre Antwort auf die Frage