# ASP.NET Core MVC / Razor Pages UI: API DOM JavaScript `abp.dom` (Document Object Model) fornece eventos aos quais você pode se inscrever para ser notificado quando elementos são adicionados e removidos dinamicamente da página (DOM). Isso é especialmente útil se você deseja inicializar os novos elementos carregados. Isso geralmente é necessário quando você adiciona elementos dinamicamente ao DOM (por exemplo, obtém alguns elementos HTML via AJAX) após a inicialização da página. > O ABP usa o [MutationObserver](https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver) para observar as alterações feitas no DOM. ## Eventos de Nó ### onNodeAdded Esse evento é acionado quando um elemento é adicionado ao DOM. Exemplo: ````js abp.dom.onNodeAdded(function(args){ console.log(args.$el); }); ```` O objeto `args` possui os seguintes campos: * `$el`: A seleção JQuery para obter o novo elemento inserido no DOM. ### onNodeRemoved Esse evento é acionado quando um elemento é removido do DOM. Exemplo: ````js abp.dom.onNodeRemoved(function(args){ console.log(args.$el); }); ```` O objeto `args` possui os seguintes campos: * `$el`: A seleção JQuery para obter o elemento removido do DOM. ## Inicializadores Pré-Construídos O ABP Framework usa os eventos DOM para inicializar algum tipo de elementos HTML quando eles são adicionados ao DOM após a inicialização da página. > Observe que os mesmos inicializadores também funcionam se esses elementos já estiverem incluídos no DOM inicial. Portanto, se eles forem carregados inicialmente ou de forma tardia, eles funcionam como esperado. ### Inicializador de Formulário O inicializador de formulário (definido como `abp.dom.initializers.initializeForms`) inicializa os formulários carregados de forma tardia; * Habilita automaticamente a validação `unobtrusive` no formulário. * Pode mostrar automaticamente uma mensagem de confirmação quando você envia o formulário. Para habilitar esse recurso, basta adicionar o atributo `data-confirm` com uma mensagem (como `data-confirm="Tem certeza?"`) ao elemento `form`. * Se o elemento `form` tiver o atributo `data-ajaxForm="true"`, então chama automaticamente o `.abpAjaxForm()` no elemento `form`, para enviar o formulário via AJAX. Consulte o documento [Forms & Validation](../Forms-Validation.md) para mais informações. ### Inicializador de Script O inicializador de script (`abp.dom.initializers.initializeScript`) pode executar um código JavaScript para um elemento DOM. **Exemplo: Carregar de forma tardia um componente e executar algum código quando o elemento for carregado** Suponha que você tenha um contêiner para carregar o elemento dentro: ````html
```` E este é o componente que será carregado via AJAX do servidor e inserido no contêiner: ````htmlMensagem de exemplo