在 Shiny 应用程序中更改 bsModal 的背景
Change backdrop for a bsModal in Shiny app
我正在开发一个 Shiny 应用程序,我需要确保最终用户不会意外关闭 bsModal,因为它上面有一些操作按钮。我做了一些研究,了解到我需要覆盖背景和键盘参数,但即使我看到了一些建议,我也不知道这需要在我的代码中的确切位置。我不精通 JavaScript 并且对 Shiny 很陌生,所以尽管这感觉很简单,但我做不对。
如果有人需要,这里有一些虚拟代码,可以在按下按钮后打开模式 window;我需要防止人们通过不小心点击后台或按 esc 来关闭它。
library(shiny)
library(shinyBS)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
actionButton("go", "Go")
,bsModal("window", "Window", "go"
,textOutput("print"))
)
,mainPanel()
)
)
server <- function(input, output, session) {
output$print = renderText("This is a test")
}
shinyApp(ui, server)
我尝试结合这两个线程中提供的解决方案:
Is there a way to hide/disable the `Close` button on a `bsModal` window?
Prevent Bootstrap Modal from disappearing when clicking outside or pressing escape?
做这样的事情(在几个不同的组合中),但这并没有真正起作用:
actionButton("go", "Go")
,bsModal("window", "Window", "go"
,textOutput("print")
,tags$head(tags$style("#window .modal{backdrop: 'static'}")))
)
非常感谢任何帮助!
这样做就可以了:
bsModalNoClose <-function(...) {
b = bsModal(...)
b[[2]]$`data-backdrop` = "static"
b[[2]]$`data-keyboard` = "false"
return(b)
}
然后您也可以关闭页眉和页脚,以防止在那里关闭:
bsModalNoClose("window", "Window", "go"
,textOutput("print"),
tags$head(tags$style("#window .modal-footer{display:none}
.modal-header{display:none}")))
我正在开发一个 Shiny 应用程序,我需要确保最终用户不会意外关闭 bsModal,因为它上面有一些操作按钮。我做了一些研究,了解到我需要覆盖背景和键盘参数,但即使我看到了一些建议,我也不知道这需要在我的代码中的确切位置。我不精通 JavaScript 并且对 Shiny 很陌生,所以尽管这感觉很简单,但我做不对。
如果有人需要,这里有一些虚拟代码,可以在按下按钮后打开模式 window;我需要防止人们通过不小心点击后台或按 esc 来关闭它。
library(shiny)
library(shinyBS)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
actionButton("go", "Go")
,bsModal("window", "Window", "go"
,textOutput("print"))
)
,mainPanel()
)
)
server <- function(input, output, session) {
output$print = renderText("This is a test")
}
shinyApp(ui, server)
我尝试结合这两个线程中提供的解决方案:
Is there a way to hide/disable the `Close` button on a `bsModal` window?
Prevent Bootstrap Modal from disappearing when clicking outside or pressing escape?
做这样的事情(在几个不同的组合中),但这并没有真正起作用:
actionButton("go", "Go")
,bsModal("window", "Window", "go"
,textOutput("print")
,tags$head(tags$style("#window .modal{backdrop: 'static'}")))
)
非常感谢任何帮助!
这样做就可以了:
bsModalNoClose <-function(...) {
b = bsModal(...)
b[[2]]$`data-backdrop` = "static"
b[[2]]$`data-keyboard` = "false"
return(b)
}
然后您也可以关闭页眉和页脚,以防止在那里关闭:
bsModalNoClose("window", "Window", "go"
,textOutput("print"),
tags$head(tags$style("#window .modal-footer{display:none}
.modal-header{display:none}")))