Является ли «законным» иметь SVG с данными в чужом домене, то есть (data = «// da86ge957603k.cloudfront.net/rails/grafitti_logo-f4e8238a87c979c0cf5b41481c982b71.svg») , а затем связать событие загрузки с объектом и затем получить доступ к SVG DOM объекта через свойство contentdocument? Я могу сделать это, когда SVG находится в локальном домене, но всякий раз, когда я пытаюсь разместить SVG в другом месте, я получаю ошибки «this.contentDocument is null». Я также попробовал getSVGDocument(). Я не могу найти нигде, где говорится, что это проблема междоменной безопасности, и из того, что я могу сказать, должно быть допустимо использование тега объекта, используемого для SVG (я не использую iFrame). Я ценю, что вы нашли время, чтобы помочь мне. Вот код, который я использую для встраивания объекта и привязки, и пытаюсь получить доступ к DOM (как я уже говорил, это работает, когда SVG находится в локальном домене).Документ с содержимым 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");
}
}
Dan
UAs следует предотвратить это. Если вы контролируете удаленный сайт, вы можете настроить CORS, чтобы обойти это: https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS –
Благодарим вас за ответ. Похоже, что это предотвращается, я просто не могу найти тот факт, что это ожидаемое поведение, зарегистрированное где угодно. Я дам вам смысл ответить. – dps
Привет @dps, вам удалось сделать эту работу? Я не могу заставить какой-либо браузер выполнять предполетный запрос перед загрузкой ресурса, и это, по-видимому, является причиной того, что я не могу получить доступ к документу содержимого. Реализация, которую я имею, кажется, идентична вашей. – Kukosk