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 de Browser

BCD tables only load in the browser