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}")