Skip to main content

A custom Streamlit component to evaluate arbitrary Javascript expressions.

Project description


PyPI version Downloads Streamlit App

SJE is a custom Streamlit component, built to evaluate arbitrary Javascript expressions and return the result. It can become useful in doing certain functionalities which are simple things in JavaScript, but unavailable or difficult to do in Streamlit. Examples include cookie management, writing to clipboard, getting device width (e.g. to check if we are on a mobile device), getting browser language, sharing something through Android's share feature, knowing user agent, etc. See MDN docs for more information about Web APIs.


pip3 install streamlit_js_eval


st.write(f"Screen width is {streamlit_js_eval(js_expressions='screen.width', key = 'SCR')}")

key is an arbitrary but unique string, required by Streamlit components API for each call to streamlit_js_eval.

Common JavaScript functionalities

Some more common functionalities are already implemented as Python functions. Examples include:

# Returns user's location after asking for permission when the user clicks the generated link with the given text
location = get_geolocation()
# The URL parts of the page
location_json = get_page_location()

See streamlit_js_eval/ for more functions. Check a demo in or see it live.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

streamlit_js_eval-0.1.5.tar.gz (5.3 kB view hashes)

Uploaded source

Built Distribution

streamlit_js_eval-0.1.5-py3-none-any.whl (7.2 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page