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 no caso de uma shadow DOM.

Sintaxe

var isItConnected = nodeObjectInstance.isConnected

Retorno

Um Boolean 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

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
isConnectedChrome Full support 51Edge Full support 79Firefox Full support 53IE No support NoOpera Full support 38Safari Full support 10.1WebView Android Full support 51Chrome Android Full support 51Firefox Android Full support 45Opera Android Full support 41Safari iOS Full support 10.3Samsung Internet Android Full support 6.0

Legend

Full support  
Full support
No support  
No support