Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   SVG теги юзера (https://javascript.ru/forum/misc/70883-svg-tegi-yuzera.html)

Герасим 09.10.2017 14:16

SVG теги юзера
 
Здравствуйте!
вот, например, статейка про SVG, там упоминается дополнительное пространство имён (в примере это sketch) которое браузер при выводе SVG игнорирует (хотя бы не ругается) а ПО в котором создан SVG использует эти пространство имён для своих целей.
Напр., я хочу добавить в SVG дополнительную информацию которая будет обрабатываться моим приложением.
Какие есть для этого способы?
Для Sketch, Visio и прочих, я заметил что добавляется в заголовок строка вида:
Для Scketch
xmlns:xlink=".w3.org/1999/xlink" xmlns:sketch=""

тогда в svg можно вставлять что-то вроде
sketch:type="MSShapeGroup"


Для Visio (при сохранении в SVG)
xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/"

тогда в svg от Visio возможны такие теги:
<v:userDefs>
  <v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
  <v:ud v:nameU="msvThemeEffects" v:val="VT0(16):26"/>
</v:userDefs>

это примерно то что мне надо

Герасим 02.03.2018 21:29

отвечаю сам себе, на память
 
1) в заголовок SVG можно добавить своё описание
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events"
xmlns:mytags="http://www.mytags.ru/CityNight"

теперь в элементе, который я хочу выделить своим тегом, могу писать:
<g id="shape35-26" transform="translate(31.1811,-48.189)" mytags:id="MainSwitch">
height="17.0079" class="st3"/> </g>

и в JS могу искать элемент со своим тегом через
getAttribute('mytags:id')

2) но можно обойтись и без своих определений в заголовке SVG, потому что есть стандартный тег data
<g id="shape35-26" transform="translate(31.1811,-48.189)" data-id="MainSwitch">
height="17.0079" class="st3"/>
</g>

Пишу data, и через дефис, что угодно.
И искать его так же через getAttribute('data-id')


Часовой пояс GMT +3, время: 04:34.