Я хочу получать данные cookie из моего приложения Shiny, используя shinyjs. Я создал cookie, «samplecookie = testval»; и я хочу, чтобы получить значение samplecookie. Я использую нижеследующую функцию javascript (где я передаю cookieName и возвращает соответствующее значение).Блестящие: используйте shinyjs для получения данных cookie
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";
Ниже Javascript код в блестящем приложении
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)
Я ожидаю, что когда я прохожу «samplecookie» в качестве параметра функции tstfunc(), он должен напечатать «testval» на консоль. Но каждый раз, когда я получаю возвращаемое значение NULL. Может кто-нибудь помочь мне понять, что я делаю неправильно? Цените любую помощь. Благодарю.
Получил его. Это работает. Благодаря @daattali – rookieJoe