【问题标题】:R shiny trigger downloadHandler on page loading页面加载时R闪亮触发downloadHandler
【发布时间】:2020-01-25 06:06:14
【问题描述】:

我正在构建一个应用程序,该应用程序在 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】:

    可能downloadHandler 还没有准备好。你可以使用setTimeout(..., 0):

    runjs("setTimeout(function(){document.getElementById('downloadData').click();},0);")
    

    【讨论】:

      猜你喜欢
      • 2017-07-15
      • 2018-08-02
      • 2013-03-28
      • 2020-12-15
      • 2018-04-30
      • 2020-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多