У меня есть SVG-карта, которая не привязана к HTML с помощью тега 'object'. Затем я пытаюсь использовать jQuery для доступа к элементам карты. (В частности, я пытаюсь заполнить прямоугольник красного цвета.)Невозможно прочитать свойство 'contentDocument' of null
HTML:
<object data="map.svg" type="image/svg+xml" id="map" width="1840" height="940"></object>
JQuery:
jQuery(window).load(function() {
var svgobject = document.getElementById('map');
if ('contentDocument' in svgobject) {
var svgdom = jQuery(svgobject.contentDocument);
jQuery("#rect4578", svgdom).attr("fill", "red");
}
});
В хроме я получаю сообщение об ошибке: Не удается прочитать свойство 'contentDocument' в нуль (анонимная функция) n.event.duspatch n.event.add.r.handle
в чем проблема?
спасибо.
Да это было «IMAP» я не был так внимателен. Однако теперь я получил следующее сообщение: ** Uncaught Security error: Не удалось прочитать свойство contentDocumant из «HTMLObjectElement»: заблокировал кадр с исходным «нулем» от доступа к кадру с исходным «нулем». Протоколы, домены и порты должны совпадать **. – plywoods
Об этом я нашел здесь (в комментариях) - http://benfrain.com/selecting-svg-inside-tags-with-javascript/. Однако мой html и svg aer хранятся локально на моем ПК. И не совсем понятно, что мне нужно сделать, чтобы он работал. – plywoods
Попробуйте искать в stackoverflow о вашей проблеме или, возможно, эти ссылки помогут вам [link] (http://stackoverflow.com/questions/25098021/securityerror-blocked-a-frame-with-origin-from-accessing -a-cross-origin-frame) [ссылка] (http://stackoverflow.com/questions/17950598/using-iframe-with-local-files-in-chrome) – Pumpkin