javascript - 不同浏览器中的重置按钮
问题描述
我配置了一个按钮以在我们单击它时刷新网页。这使我可以重置输入中输入的值。在 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()
})
解决方案
下次请尝试提供一个完整的可重现示例。这是一些示例代码,突出显示可以按原样运行的问题:
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)
有两种可能的解决方案:
- 如果您只想重置页面上的所有输入,您可以使用
shinyjs::reset()
- 如果您确实想刷新页面并重置输入,我相信您应该使用
window.location.reload(true)
而不是history.go(0)
推荐阅读
- excel - vba 在不激活工作表的情况下更改列值?
- c++ - 设置开放 mp 线程以使用 80% CPU
- user-interface - 一个从勾号变成“X”的新动画图标?
- php - 扁平化一系列工作人员
- android - 使用 RxJava 进行改造 - 自定义故障数据类
- node.js - 改进猫鼬验证错误处理
- javascript - jQuery Ajax Unexpected token < error on 404 而不是普通的 ajax 错误处理函数
- laravel - 如何在 POST 路由上停止 GET (laravel)
- javascript - react js中的函数和类
- javascript - 如何检查对象内的数组是否为空