Die onclick
Methode ist einfach, aber es benötigt Javascript. Noch wichtiger ist, dass es unangenehm ist, wenn Sie die Verbindung dynamisch generieren möchten. Ich möchte einen Link in meiner App haben, der je nach Benutzereingabe eine bestimmte Seite öffnet, und ich habe festgestellt, dass Sie einen Link einfach als Schaltfläche kleiden können.
Zuerst beschäftige ich mich mit dem dynamischen Teil mit uiOutput
und renderUI
, weil die Verbindung nur im Server Teil erzeugt werden kann. Die einfache Verbindung wird
a(h4("Open Link"), target = "_blank", href = paste0("http://www.somesite/", some_link))
einfach sein, diese Linie in R laufen wir
bekommen
<a target="_blank" href="http://www.somesite/somelink">
<h4>Open Link</h4>
</a>
Um eine Schaltfläche erstellen wir auf das, was ein Aktionstaste aussehen aussehen kann.
> 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>
Dann können wir das
shiny::a(h4("Open Link", class = "btn btn-default action-button" ,
style = "fontweight:600"), target = "_blank",
href = paste0("http://www.somesite/", some_link))
zu bekommen
<a target="_blank" href="http://www.somesite/some_link">
<h4 class="btn btn-default action-button" style="fontweight:600">Open Link</h4>
</a>
Jetzt haben wir einen Link, der wie eine Schaltfläche aussieht, und Sie können weiter seinen Stil anpassen entweder mit Stil Parameter oder kundengebundenes css. Öffnen Sie Ihre App mit den chrome/firefox-Entwicklertools, modifizieren Sie die CSS-Datei mit dem gewünschten Effekt und fügen Sie die geänderte CSS-Datei im www-Ordner zu style.css
hinzu, um den Standardstil zu überschreiben.
Wenn Sie die Ausgabe von vielen HTML-Tags Funktion betrachten, werden Sie feststellen, dass Sie tatsächlich viele Sachen zusammen kombinieren und zusammenbauen können, um viele Anpassungen zu erhalten.
Wow!Das hat funktioniert! Ich konnte nirgends eine Antwort finden, wenn ich googelte, froh, dass ich es hier als Frage gepostet habe. Danke vielmals! –