Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

380
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!