Я использую 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(...)
, но это не правильный способ исправить проблемы с условиями гонки.Так что просто сказать, мне интересно, есть ли более чистый способ добиться того же?