[R闪亮触发downloadHandler在页面加载中

问题描述 投票:0回答:1

我正在构建一个在url查询中未给出任何内容时可以正常运行的应用程序,但是,如果在其中给出了某个字符串,则应立即下载该文件。下载工作正常,但是在启动时运行它会返回“ download.htm”文件,而不是.csv文件。可重现的示例不是查询url,而是在观察中触发:

library(shiny)
library(shinyjs)

ui <- fluidPage(
  useShinyjs()
  ,downloadButton("downloadData", "Download")
)

server <- function(input, output) {

  data <- mtcars

  observe({
    print("click MacClickFace")
    runjs("document.getElementById('downloadData').click();")
  })  

  output$downloadData <- downloadHandler(
    filename = function() {
      paste("data-", Sys.Date(), ".csv", sep="")
    },
    content = function(file) {
      write.csv(data, file)
    }
  )
}

shinyApp(ui, server)

您如何在启动时触发下载,或者这里有一些安全方面的事情?

r shiny shinyjs
1个回答
1
投票

可能downloadHandler未准备好。您可以使用setTimeout(..., 0)

runjs("setTimeout(function(){document.getElementById('downloadData').click();},0);")
© www.soinside.com 2019 - 2024. All rights reserved.