2015-04-19 2 views
6

Один из способов - проверить, есть ли свойство .shadowRoot для элемента, однако мне нужно вернуть логическое значение до отображения страницы.Как проверить, поддерживает ли браузер тень DOM

+0

Поскольку вы собираетесь запускать свой код до того, как остальная страница загрузится в любом случае, заблокируйте все, пока ваш код не будет выполнен, не создайте элемент, не проверите, не удалите его и не продолжите. – Nit

ответ

8

Один простой тест функция будет:

if(document.head.createShadowRoot || document.head.attachShadow) { 
    // I can shadow DOM 
} else { 
    // I can't 
} 

Это будет работать, даже если включить скрипт в головной секции и предполагает не вредоносные скрипты были добавлены до ваш (безопасное предположение).

В настоящее время Chrome, Opera и производные браузеры (например, браузеры Android) поддерживают его. Для получения дополнительной информации посетите: http://caniuse.com/#feat=shadowdom

+0

Есть ли что-то, что я могу проверить в 'window'? Мне нужно протестировать до загрузки страницы (селен). – Indolering

+0

нм, это, похоже, работает в wdio.io setup/before function. Тем не менее, все еще интересуется ответом. – Indolering

+1

это имеет ложный отрицательный результат в сафари 10.1, так как это v0. V1 использует 'attachShadow' –

Смежные вопросы