在R闪亮的App中禁用浏览器后退按钮

时间:2016-07-18 11:44:53

标签: shiny shinydashboard

我正在构建一个有很多条件面板的闪亮应用程序。我在应用程序中有一个后退按钮,可以在条件面板之间导航。我想禁用Web浏览器后退按钮,因为单击该按钮会转到上一个网页(远离我的应用程序)。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:3)

您可以编写一些javascript来执行此操作。这里我有两个例子,请注意我只在Chrome

上测试了这个

示例1 会在浏览器中激活back按钮时返回消息

rm(list = ls())
library(shiny)
jscode <- 'window.onbeforeunload = function() { return "Please use the button on the webpage"; };'
ui <- basicPage(
  mainPanel(tags$head(tags$script(jscode)))
)

server <- function(input, output,session) {}
runApp(list(ui = ui, server = server))

enter image description here

示例2 将完全禁用导航。就个人而言,我不喜欢这种方法,因为人们可能会因为您的网站没有提供标准导航功能而感到恼火

rm(list = ls())
library(shiny)
jscode2 <- "history.pushState(null, null, document.title);
window.addEventListener('popstate', function () {
    history.pushState(null, null, document.title);});"
ui <- basicPage(
  mainPanel(tags$head(tags$script(jscode2)))
)

server <- function(input, output,session) {}
runApp(list(ui = ui, server = server))