簡體   English   中英

sendCustomMessage在actionButton中無法正常工作(發光)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM