Ich möchte mithilfe von shinyjs Cookie-Daten von meiner Shiny-App abrufen. Ich habe einen Cookie erstellt, "samplecookie = testval"; und ich möchte den Wert von Samplecookie abrufen können. Ich benutze die folgende JavaScript-Funktion (wo ich den Cookie-Namen übergebe und es den entsprechenden Wert zurückgibt).Shiny: Verwenden Sie shinyjs, um Cookie-Daten abzurufen
function fetchCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(";");
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==" ") c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return "No such cookie";
Unten ist die Javascript-Code in der glänzenden App
jsCode<-'shinyjs.tstfunc=
function (name) {
var nameEQ = name + "=";
var ca = document.cookie.split(";");
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==" ") c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
return "No such cookie";
}
}'
ui <- shinyUI(fluidPage(mainPanel(
useShinyjs(),
extendShinyjs(text = jsCode)
)))
server <- function(input, output)
{
observe({
x=js$tstfunc("samplecookie")
print(x)
})
}
shinyApp(ui=ui, server=server)
Ich erwarte, dass, wenn ich "samplecookie" als Parameter an die tstfunc() Funktion übergeben, sollte es auf "testval" drucken die Konsole. Aber jedes Mal bekomme ich einen NULL-Wert zurück. Kann mir jemand helfen zu verstehen, was ich falsch mache? Schätze jede Hilfe. Vielen Dank.
Got it. Das funktioniert. Danke @daattali – rookieJoe