不同浏览器中的“重置”按钮

时间:2019-07-10 09:53:44

标签: javascript r shiny

我配置了一个按钮来刷新网页,当我们单击它时。这使我可以重置输入中输入的值。在Google chrome和Internet Explorer上,它可以完美运行。但是在Mozilla Firefox上,网页会刷新,但会保留我输入的参数。你知道为什么吗 ?

    # ui.R

jsResetCode <- "shinyjs.reset = function() {history.go(0)}"

useShinyjs(),
extendShinyjs(text = jsResetCode),
actionButton("reset_button", "Refresh")


    # server.R

observeEvent(input$reset_button, {
    js$reset()
  })

1 个答案:

答案 0 :(得分:0)

请下次尝试提供完整的可复制示例。以下是一些示例代码,突出显示了可以按原样运行的问题:

library(shiny)

ui <- fluidPage(
  shinyjs::useShinyjs(),
  shinyjs::extendShinyjs(text = "shinyjs.reset = function() {history.go(0)}"),
  textInput("test", "test", "test"),
  actionButton("reset_button", "Refresh")
)

server <- function(input, output, session) {
  observeEvent(input$reset_button, {
    shinyjs::js$reset()
  })
}

shinyApp(ui, server)

有两种可能的解决方案:

  1. 如果您只想重置页面上的所有输入,则可以使用shinyjs::reset()
  2. 如果您实际上要刷新页面并重置输入,我相信您应该使用window.location.reload(true)而不是history.go(0)