Il metodo onclick
è semplice ma si basa su javascript. Ancora più importante, sarà imbarazzante se si desidera generare il collegamento in modo dinamico. Voglio avere un link nella mia app che apra una pagina specifica in base all'input dell'utente, e ho scoperto che puoi semplicemente vestire un link come un pulsante.
Prima di tutto mi occupo della parte dinamica con uiOutput
e renderUI
, perché il collegamento può essere generato solo nella parte server. Il collegamento semplice sarà
a(h4("Open Link"), target = "_blank", href = paste0("http://www.somesite/", some_link))
basta eseguire questa linea in R otteniamo
<a target="_blank" href="http://www.somesite/somelink">
<h4>Open Link</h4>
</a>
Per creare un pulsante che possiamo guardare a ciò che un pulsante di azione assomigliare.
> actionButton("download", "Download Selected",
icon = icon("cloud-download"))
<button id="download" type="button" class="btn btn-default action-button">
<i class="fa fa-cloud-download"></i>
Download Selected
</button>
allora possiamo fare questo
shiny::a(h4("Open Link", class = "btn btn-default action-button" ,
style = "fontweight:600"), target = "_blank",
href = paste0("http://www.somesite/", some_link))
per ottenere
<a target="_blank" href="http://www.somesite/some_link">
<h4 class="btn btn-default action-button" style="fontweight:600">Open Link</h4>
</a>
Ora abbiamo un link che assomiglia ad un tasto, ed è possibile personalizzare ulteriormente il suo stile sia con parametro di stile o css personalizzato. Apri la tua app con gli strumenti di sviluppo chrome/firefox, modifica il css sull'effetto desiderato, quindi aggiungi il css modificato a style.css
nella cartella www per sovrascrivere lo stile predefinito.
Se si guarda l'output di molte funzioni di tag html, si scoprirà che è possibile combinare e assemblare molte cose insieme per ottenere molte personalizzazioni.
Wow!Ha funzionato! Non sono riuscito a trovare una risposta da nessuna parte quando ho cercato su Google, lieto di averlo postato come domanda qui. Molte grazie! –