R在页面加载时触发downloadHandler

R在页面加载时触发downloadHandler,r,shiny,shinyjs,R,Shiny,Shinyjs,我正在构建一个应用程序,当url查询中没有给出任何内容时,它会定期运行,但是如果在那里给出了某个字符串,它应该立即下载该文件。下载工作正常,但当它在启动时运行时,会返回一个“download.htm”文件,而不是.csv文件。可重复的示例不是查询url,而是在观察中触发: library(shiny) library(shinyjs) ui <- fluidPage( useShinyjs() ,downloadButton("downloadData", "Download")

我正在构建一个应用程序,当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)
库(闪亮)
图书馆(shinyjs)

ui可能是
下载处理程序未准备好。您可以使用
设置超时(…,0)

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