2015-04-19 14 views
6

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

+0

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

risposta

8

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

+0

C'è qualcosa che posso controllare in 'window'? Devo testare prima che la pagina sia caricata (selenio). – Indolering

+0

nm, sembra funzionare in wdio.io setup/before function. Ancora interessato a una risposta, tuttavia. – Indolering

+1

questo ha un falso negativo in safari 10.1, in quanto è v0. V1 usa 'attachShadow' –

Problemi correlati