• Empleos
  • Sobre nosotros
  • Empleos
    • Inicio
    • Empleos
    • Cursos y retos
  • Empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Contrata talento tech
    • Blog
    • Comercial
    • Calculadora de salario

0

349
Vistas
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.

almost 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

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í

almost 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda