Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

220
Visualizações
¿Cómo hacer clic en un elemento que está en el cuerpo pragmáticamente desde el interior de un componente angular?

Tengo un sitio web en el que se ejecuta el servicio de chat nítido y estoy tratando de hacer clic en el cuadro de chat de uno de los archivos mecanografiados de mi componente.

El cuadro de chat de crisp es un div con la identificación de crisp-client dentro de la etiqueta del body . ¿Cómo hago clic en él desde dentro de mi texto mecanografiado?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Puede usar el decorador ViewChild y pasar una variable de referencia de plantilla como una cadena y manipular el evento. Aquí hay un ejemplo simple de hacer clic en el Button 1 , que hace clic programáticamente en el Button 2 y, debido a ese clic, el texto del Button 2 cambia:

 <button #button1 (click)="clickButton2()"> Click to change the text of Button 2 </button> <button #button2 (click)="changeText()">{{ buttonText }}</button>
 buttonText = 'Button 2'; @ViewChild('button2') button2: ElementRef<HTMLElement>; clickButton2() { let el: HTMLElement = this.button2.nativeElement; el.click(); } changeText() { this.buttonText="Changed!" }

Aquí hay una demostración de Stackblitz

ACTUALIZAR

Puede acceder a elementos del cuerpo utilizando el objeto de document en Angular. De esta manera, puede lograr el clic del elemento que está dentro body . Aquí hay un ejemplo más en el que hago clic en el botón que está dentro del body de un componente.

 <button (click)="handleClick()">Programatically click the button inside body</button>
 ngOnInit() { let btn = document.getElementById('main'); btn.addEventListener('click', (e: Event) => btn.innerHTML = "Clicked!"); } handleClick() { document.getElementById('main').click(); }

índice.html

 <html> <body> <my-app>loading</my-app> <button id="main">Click</button> </body> </html>

Aquí hay una demostración de Stackblitz .

about 4 years ago · Juan Pablo Isaza Relatório

0

Inyectar Renderer2 en el constructor -

 constructor(private renderer: Renderer2) {}

Obtenga el elemento de cliente nítido en su componente:

 let crispClient = this.renderer.selectRootElement('#crisp-client');

Realizar evento click() -

 crispClient.click();

Demostración de trabajo aquí

Se agregó un método de prueba en div para verificar:

 <div id="crisp-client" onClick="console.log('crisp client clicked')"></div>
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda