|
|
|
|
|
import os |
|
import gradio as gr |
|
import datetime |
|
|
|
def update_content(): |
|
current_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") |
|
return f"Update: {current_time}" |
|
|
|
with gr.Blocks() as demo: |
|
gr.HTML(""" |
|
<style> |
|
body { |
|
font-family: Arial, sans-serif; |
|
background-color: #f0f0f0; |
|
} |
|
.container { |
|
max-width: 800px; |
|
margin: 0 auto; |
|
padding: 20px; |
|
background-color: white; |
|
border-radius: 10px; |
|
box-shadow: 0 0 10px rgba(0,0,0,0.1); |
|
} |
|
h1 { |
|
color: #333; |
|
} |
|
#custom-button { |
|
background-color: #4CAF50; |
|
border: none; |
|
color: white; |
|
padding: 15px 32px; |
|
text-align: center; |
|
text-decoration: none; |
|
display: inline-block; |
|
font-size: 16px; |
|
margin: 4px 2px; |
|
cursor: pointer; |
|
} |
|
#update-area { |
|
margin-top: 20px; |
|
padding: 10px; |
|
border: 1px solid #ddd; |
|
} |
|
</style> |
|
|
|
<div class="container"> |
|
<h1>Update Example</h1> |
|
<button id="custom-button" onclick="update()">Update button</button> |
|
<div id="update-area"> |
|
press here to update |
|
</div> |
|
</div> |
|
""") |
|
output = gr.Textbox(label="Update the content") |
|
update_button = gr.Button("UUpdate", visible=False) |
|
|
|
update_button.click(fn=update_content, inputs=[], outputs=[output]) |
|
|
|
gr.HTML(""" |
|
<script> |
|
function update() { |
|
document.querySelector('button.gr-button').click(); |
|
} |
|
document.addEventListener('DOMContentLoaded', (event) => { |
|
const outputElement = document.querySelector('.gr-textbox-output'); |
|
const observer = new MutationObserver(function(mutations) { |
|
mutations.forEach(function(mutation) { |
|
if (mutation.type === "childList") { |
|
document.getElementById("update-area").innerHTML = outputElement.value; |
|
} |
|
}); |
|
}); |
|
|
|
const config = { childList: true, subtree: true }; |
|
observer.observe(outputElement, config); |
|
}); |
|
</script> |
|
""") |
|
|
|
demo.launch() |
|
|