Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.05.2021, 12:13
Новичок на форуме
Отправить личное сообщение для igorrositsky Посмотреть профиль Найти все сообщения от igorrositsky
 
Регистрация: 09.05.2021
Сообщений: 2

разбор DOM SVG файла
не могу прочитать отдельные элементы внутри SVG файла, что не так?

test.svg
<?xml version="1.0" encoding="utf-8"?>
<svg id="root" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<ellipse id="n1" cx="50" cy="60" rx="20" ry="20" />
<ellipse id="n2" cx="150" cy="60" rx="25" ry="25" />
<ellipse id="n3" cx="250" cy="60" rx="35" ry="35" />
</svg>

test.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style type="text/css"></style>
</head>

<body>
<embed id="svg" type="image/svg+xml" src="test.svg" pluginspage="http://www.adobe.com/svg/viewer install/" />

</body>

<script type="text/javascript">

//<object id="root" data="test.svg" type="image/svg+xml"></object>

window.addEventListener("load", on_load);

function on_load ()
{

// console.log(document.getElementById('svg').getSVGD ocument());
// null

// console.log(document.getElementById('svg').svg);
// undefined

// console.log(document.getElementById('svg').content Document);
// undefined

// но!
// console.log(document.getElementById('svg'));
// test.html:25 <embed id=​"svg" type=​"image/​svg+xml" src=​"test.svg" pluginspage=​"http:​/​/​www.adobe.com/​svg/​viewer install/​">​#document<svg xmlns=​"http:​/​/​www.w3.org/​2000/​svg" xmlns:xlink=​"http:​/​/​www.w3.org/​1999/​xlink" id=​"root" version=​"1.1">​<ellipse id=​"n1" cx=​"50" cy=​"60" rx=​"20" ry=​"20">​</ellipse>​<ellipse id=​"n2" cx=​"150" cy=​"60" rx=​"25" ry=​"25">​</ellipse>​<ellipse id=​"n3" cx=​"250" cy=​"60" rx=​"35" ry=​"35">​</ellipse>​</svg>​</embed>​

console.log(document.getElementById('svg').getElem entById('root'));
// test.html:37 Uncaught TypeError: document.getElementById(...).getElementById is not a function


}
</script
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 09.05.2021, 13:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

igorrositsky,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #3 (permalink)  
Старый 09.05.2021, 20:46
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,743

Если html файл, и svg файл берутся из локальной файловой системы, то это работать не будет
Они должны передаваться с сервера по протоколу http(s) и из одного домена.
Тогда и getSVGDocument() и contentDocument вернут не null, а документ svg
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить доступ к элементами внешнего svg файла? pokk Общие вопросы Javascript 1 06.12.2019 12:17
получение и использование элементов DOM из SVG ghost666 Events/DOM/Window 3 15.05.2018 11:49
Интеграция SVG файла в HTML страницу maxg5 (X)HTML/CSS 0 19.07.2017 17:24
Chrome не видит DOM подключаемого SVG через iframe FINoM Events/DOM/Window 10 10.06.2014 14:23
Существует ли скрипт, позволяющий удобно манипулировать DOM XML файла FINoM Events/DOM/Window 0 19.02.2011 05:42