Как я могу определить, содержит ли SVG определенный символ? - PullRequest
0 голосов
/ 26 сентября 2018

Я использую svg-файл с символами следующим образом:

<svg xmlns="http://www.w3.org/2000/svg">
     <use xlink:href="aFile.svg#symbolName"/>
</svg>

Теперь я хотел бы знать, действительно ли "aFile.svg" содержит "symbolName" и просто вызвать исключение, если нет.Пока что я поместил событие onload в тег <use>.Когда <use> загружается, я проверяю размер элемента содержимого getBoundingClientRect().Если размер больше 0,0, это означает, что у нас есть элемент….

Все работало нормально, пока я не попробовал Safari.На Safari у меня проблема с условиями гонки.Размер тега <use> не всегда готов, когда safari firesw onload.Это означает, что иногда я получаю размер, иногда нет (это действительно случайно ...).Я временно исправил это, используя window.timeout(...), но это не правильный способ исправить проблемы с условиями гонки.Так что просто сказать, мне интересно, есть ли более чистый способ добиться того же?

1 Ответ

0 голосов
/ 26 сентября 2018

Вы, вероятно, не можете сделать это напрямую.Если вы впервые внедрили свой файл aFile.svg в DOM, вы можете просто использовать querySelector(), чтобы определить, доступен ли символ.

Для инъекции файла SVG это может быть полезно:https://css -tricks.com / ajaxing-SVG-спрайт /

...