Hey! How can I open the url in the same tab of the browser? webbrowser didn’t help, it always opens a new tab and google search confirmed it’s not possible I used to have a hyperlink which opened the url in the same window
st.write(f'''<h1>
Please login via <a target="_self"
href="{authorization_url}">Google</a></h1>''',
unsafe_allow_html=True)
But I want a button that triggers URL redirect
login = st.button('Log in')
if login:
webbrowser.open(authorization_url)
I guess I could extract that redirect function from st.write above but I have no experience in html and this code isn’t mine haha
You can create a button manually. Unfortunately I couldn’t find a way to style the button persistently across Streamlit versions (class hashes change each version).
import streamlit as st
st.write(f'''
<a target="_self" href="https://eox.at">
<button>
Please login via Google
</button>
</a>
''',
unsafe_allow_html=True
)
I found the best way to redirect to the same page or automatically redirect using META.
If you want to open the link on another page, the best solution is to use WEBBROWSER.
My solution:
import streamlit as st
def redirect(_url):
link = ‘’
st.markdown(link, unsafe_allow_html=True)
Webbrowser will not work when your app is hosted so be wary. Dont do what I did and learn the hard way. If you are only intending for it to be run on local machines that is fine.