import streamlit as st from streamlit.components.v1 import html # Define JavaScript code javascript_code = """ """ # Embed JavaScript into Streamlit app html(javascript_code, height=300) # Placeholder for displaying results result_placeholder = st.empty() # Add Streamlit button to trigger JavaScript function if st.button("Call JavaScript Function"): st.write("Waiting for JavaScript response...") trigger_js = """ """ html(trigger_js, height=0) # Listener for JavaScript messages st.markdown( """ """, unsafe_allow_html=True, ) # Handle the result sent from JavaScript if "js_result" not in st.session_state: st.session_state["js_result"] = "" # Update session state and display the result try: received_result = st.session_state["js_result"] # Only display if we have new data if received_result: result_placeholder.write(f"Result from JavaScript: {received_result}") except Exception as e: st.error(f"An error occurred: {e}")