Un modo sarebbe verificare se esiste una proprietà .shadowRoot su un elemento, tuttavia è necessario restituire un valore booleano prima che la pagina venga visualizzata.Come verificare se un browser supporta shadow DOM
risposta
Un semplice test caratteristica sarebbe:
if(document.head.createShadowRoot || document.head.attachShadow) {
// I can shadow DOM
} else {
// I can't
}
Ciò funzionerà anche se si include lo script nella sezione head e non si assume alcuna script dannosi sono stati aggiunti prima del tuo (un presupposto sicuro).
Attualmente, Chrome, Opera e browser derivati (come i browser Android) lo supportano. Per ulteriori informazioni, visitare: http://caniuse.com/#feat=shadowdom
C'è qualcosa che posso controllare in 'window'? Devo testare prima che la pagina sia caricata (selenio). – Indolering
nm, sembra funzionare in wdio.io setup/before function. Ancora interessato a una risposta, tuttavia. – Indolering
questo ha un falso negativo in safari 10.1, in quanto è v0. V1 usa 'attachShadow' –
Poiché si esegue il codice prima che il resto della pagina venga caricato, bloccando tutto finché il codice non è terminato, creare un elemento, controllarlo, rimuoverlo, continuare. – Nit