![](/img/trans.png)
[英]Shiny and JavaScript interaction with session$sendCustomMessage
[英]sendCustomMessage does not work properly in actionButton (Shiny)
我正在从此处http://shiny.rstudio.com/articles/action-buttons.html测试脚本(请参阅“模式1-命令”部分)。
如果点击网站上的“单击我”按钮,则一切正常-我们可以看到弹出菜单。
但是,如果将示例脚本复制到新的.R文件中并运行它-没有弹出消息出现,则不会生成警告或错误消息(我的浏览器是Google Chrome)。 因此,我对此感到困惑。
示例脚本:
library(shiny)
ui <- fluidPage(
tags$head(tags$script(src = "message-handler.js")),
actionButton("do", "Click Me")
)
server <- function(input, output, session) {
observeEvent(input$do, {
session$sendCustomMessage(type = 'testmessage',
message = 'Thank you for clicking')
})
}
shinyApp(ui, server)
这应该可行,我给出了两个弹出警报示例
1)使用标准js
alert
rm(list = ls())
library(shiny)
ui <- fluidPage(
tags$head(tags$script(HTML('Shiny.addCustomMessageHandler("jsCode",function(message) {eval(message.value);});'))),
actionButton("do", "Click Me")
)
server <- function(input, output, session) {
observeEvent(input$do, {
js_string <- 'alert("Thank you for clicking");'
session$sendCustomMessage(type='jsCode', list(value = js_string))
})
}
shinyApp(ui, server)
2)使用shinyBS
软件包和modal
弹出窗口
rm(list = ls())
library(shiny)
library(shinyBS)
ui <- fluidPage(
tags$script(HTML('Shiny.addCustomMessageHandler("jsCode",function(message) {eval(message.value);});')),
bsModal("ThankYou", "Message", "",tags$p(tags$h1("Thank you for clicking", style = "color:red", align = "center")), size = "small"),
actionButton("do", "Click Me")
)
server <- function(input, output, session) {
observeEvent(input$do, {
activate_modal <- "$('#ThankYou').modal('show')"
session$sendCustomMessage(type='jsCode', list(value = activate_modal))
})
}
shinyApp(ui, server)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.