首页 > 解决方案 > 不同浏览器中的重置按钮

问题描述

我配置了一个按钮以在我们单击它时刷新网页。这使我可以重置输入中输入的值。在 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()
  })

标签: javascriptrshiny

解决方案


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

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)

推荐阅读