Node.isConnected
A propriedade somente-leitura isConnected
da interface Node
retorna um boleano indicando se um nó está conectado (direta ou indiretamente) ao contexto do objeto, por exemplo o objeto Document
no caso da DOM normal, ou o ShadowRoot
(en-US) no caso de uma shadow DOM.
Sintaxe
var isItConnected = nodeObjectInstance.isConnected
Retorno
Um Boolean
(en-US) que é true
se o nó está conectado ao contexto relevante do objeto, e false
se não está.
Examples
Standard DOM
Um exemplo em um DOM padrão:
let test = document.createElement('p');
console.log(test.isConnected); // Returns false
document.body.appendChild(test);
console.log(test.isConnected); // Returns true
Shadow DOM
Um exemplo em um Shadow DOM:
// Cria um raíz Shadow
var shadow = this.attachShadow({mode: 'open'});
// Cria um CSS para aplicar a Shadow DOm
var style = document.createElement('style');
console.log(style.isConnected); // retorna false
style.textContent = `
.wrapper {
position: relative;
}
.info {
font-size: 0.8rem;
width: 200px;
display: inline-block;
border: 1px solid black;
padding: 10px;
background: white;
border-radius: 10px;
opacity: 0;
transition: 0.6s all;
positions: absolute;
bottom: 20px;
left: 10px;
z-index: 3
}
`;
// Anexa a estilização criada a Shadow DOM.
shadow.appendChild(style);
console.log(style.isConnected); // retorna true
Polyfill
Node.isConnected pode ser polyfilled com o seguinte código para IE10 e EdgeHTML:
/* * Node.isConnected polyfill para IE and EdgeHTML * 2020-02-04 * * Por Eli Grey, https://eligrey.com * Domínio Público. * NENHUMA GARANTIA É EXPRESSADA OU IMPLÍCITA. USE AO SEU PRÓPRIO RISCO. */ if (!('isConnected' in Node.prototype)) { Object.defineProperty(Node.prototype, 'isConnected', { get() { return ( !this.ownerDocument || !( this.ownerDocument.compareDocumentPosition(this) & this.DOCUMENT_POSITION_DISCONNECTED ) ); }, }); }
Especificações
Especificação | Status | Comentários |
---|---|---|
DOM The definition of 'isConnected' in that specification. |
Padrão em tempo real | Definição Inicial. |
Compatibilidade com navegadores
BCD tables only load in the browser