【发布时间】:2016-06-03 21:04:50
【问题描述】:
我开始使用 Shiny 并喜欢它。但是,在我的 Shiny 应用程序中加入 javascript 以添加一些额外的功能时,我遇到了一个绊脚石。希望得到一些帮助。
这是一个非常基本的 Shiny 应用程序,我用它来测试使用 javascript 读取浏览器 cookie 的可行性,以便可以在 ui.R 中访问它。
ui.R 代码。
# UI file of getCookie Shiny application.
shinyUI(fluidPage(
titlePanel('Cookie'),
cookie <- tags$head(tags$script(src='readCookie.js')),
print(cookie)
))
“脚本”标签中包含的 javascript 函数 - 取自 quirksmode.org/js/cookies.html。
function readCookie() {
name = "raisinCookie";
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 null;
}
还有服务器代码。
# Server file of getCookie Shiny application.
shinyServer(function(input, output){
})
首先我应该问一下是否可以将 cookie 读入闪亮的应用程序?其次,我在正确的轨道上吗?第三 - 假设我的 js 代码工作正常 - 我如何访问 js 函数返回的值?
任何和所有的帮助表示赞赏,建设性的批评也是如此。我是新手,所以欢迎任何有助于整合 Shiny 和 JS 的指针。
【问题讨论】:
-
关于如何轻松地将 javascript 与闪亮集成的问题,您可能需要查看 shinyjs 包,特别是
extendShinyjs()函数,它允许您从 R 调用自己的 javascript 函数。看看吧,也许有用
标签: javascript cookies shiny