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

381
Visualizações
Llame a Javascript desde una función de evento de clic de botón en Jupyter Lab o Jupyter notebook

En la celda jupyter, tengo el siguiente código y puedo ver que funciona con "¡Hola mundo!" impreso en la consola de Chrome.

 from IPython.display import Javascript my_js = """ console.log('hello world!'); """ Javascript(my_js)

Ahora, creo un botón en jupyter y muevo esa función al evento de clic de botón. Ahora, cuando hago clic en el botón, el evento se ejecuta, pero el javascript no funciona y no hay salida en la consola de Chrome:

 button = widgets.Button( description='Button', disabled=False, button_style='', tooltip='Button', icon='check' ) def on_button_clicked(b): print("on_button_clicked called") my_js = """ console.log('Hello world2!'); """ Javascript(my_js) print("on_button_clicked call ended") button.on_click(on_button_clicked) display(button)

ingrese la descripción de la imagen aquí

¿Alguna idea? Gracias.

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

0

Está creando un objeto de la clase Javascript , pero luego lo descarta (ya que no lo está asignando a ninguna variable ni lo está mostrando). Esto funciona con su primer uso de Javascript porque cuando el último resultado de una celda de IPython no se asigna a una variable, se mostrará automáticamente; esto también significa que puede omitir la llamada a display() al mostrar un botón (si es la última línea de la celda):

 button = widgets.Button( description='Button', disabled=False, button_style='', tooltip='Button', icon='check' ) button.on_click(on_button_clicked) # notice lack of `display()` call: button

pero no funciona si el objeto a mostrar está dentro de la devolución de llamada de la función, porque IPython no sabe qué expresiones mostrar y cuáles ignorar. Los objetos Javascript deben mostrarse para que su navegador ejecute el código JavaScript. Para que funcione:

  • use la display explícitamente en el objeto Javascript , y
  • definir un área de salida en la que el objeto debe mostrarse en

Por ejemplo, la celda 1:

 out = widgets.Output(layout={'border': '1px solid black'}) out

Y entonces:

 def on_button_clicked(b): my_js = """ console.log('Hello world2!'); """ with out: display(Javascript(my_js)) display(Markdown("on_button_clicked called"))

ingrese la descripción de la imagen aquí

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