import streamlit as st from streamlit.components.v1 import html from streamlit_cookies_controller import CookieController st.set_page_config('Cookie QuickStart', '🍪', layout='wide') controller = CookieController() # Set a cookie controller.set('cookie_name', 'testing') # Get all cookies cookies = controller.getAll() # Get a cookie cookie = controller.get('cookie_name') # Remove a cookie controller.remove('cookie_name') # Debugging Headers and Cookies st.write("Headers:", st.context.headers) st.write("Cookies:", st.context.cookies) # Define JavaScript code javascript_code = """ """ # Embed JavaScript into Streamlit app html(javascript_code, height=300) # Placeholder to display 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) # Add a listener for JavaScript responses st.markdown( """ """, unsafe_allow_html=True, ) # Use an iframe for communication if "js_result" not in st.session_state: st.session_state["js_result"] = "" try: # Listen for result data from JavaScript received_result = html( """
""", height=0, ) # If there's a new result, update it in session state if received_result and received_result != st.session_state["js_result"]: st.session_state["js_result"] = received_result result_placeholder.write(f"Result from JavaScript: {received_result}") except Exception as e: st.error(f"An error occurred: {e}")