Мой тестовый пример выглядит следующим образом:
Мой скрипт должен изменить внешний вид NavBar-клиентов. Клиент добавляет мой скрипт к своим html. Они должны были добавить его сверху, чтобы избежать эффекта мерцания, но иногда они не помещают его в самый верх. поэтому html выглядит примерно так:
<html>
<head>
<theirScript1/>
<myScript/>
<theirScript2/>
</head>
<body>
<theirScript3/>
<NavBarContainer/>
<theirScript4/>
</body>
</html>
Теперь предположим, что один из сценариев thier (я не знаю, какой) добавит NavBar в NavBarContainer. myScript использует интервалы для непрерывного обхода домена (с document.querySelector) в поисках этого NavBar. Как только я нахожу этот элемент, я применяю свои изменения, и все хорошо. У меня вопрос в 2 частях.
Первое. Если весь NavBar, включая все его дочерние элементы, добавляется одним и тем же их сценарием (независимо от того, какой именно), могу ли я безопасно искать его дочерние элементы с помощью element.firstElementChild в myScript? Или возможно, что дочерние элементы не были бы смонтированы в то время?
Итак, рассмотрим следующий пример для myScript:
//getElement = async function that uses intervals to look for elements matching the selector(can't post for legal reasons)
const navBarEl = await getElement(selector); // get navBar with intervals
const navBarFirstChildEl = navBarEl.firstElementChild; // once we get navBarEl element, get its first child without intervals
Безопасно ли использовать здесь navBarFirstChildEl? Насколько я понимаю, единственный способ это потерпит неудачу, если navBarEl и navBarFirstChildEl смонтированы разными их скриптами. Правильно ли это?
Второй вопрос: есть ли разница в любом сценарии ios, если я использую:
const navBarFirstChildEl = filterBar.quertySelector('element:first-child')
Я знаю, что это длинный, многословный и запутанный вопрос. Я очень ценю все ваше время и помощь.