页面加载时 R 闪亮触发 downloadHandler
R shiny trigger downloadHandler on page loading
我正在构建一个应用程序,当 url 查询中没有给出任何内容时,它会正常运行,但是如果在那里给出了某个字符串,它应该立即下载文件。下载工作正常,但是当它在启动时 运行 时,它 return 一个 '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)
您如何在启动时触发下载或这里是否存在一些安全问题?
可能 downloadHandler
还没有准备好。您可以使用 setTimeout(..., 0)
:
runjs("setTimeout(function(){document.getElementById('downloadData').click();},0);")
我正在构建一个应用程序,当 url 查询中没有给出任何内容时,它会正常运行,但是如果在那里给出了某个字符串,它应该立即下载文件。下载工作正常,但是当它在启动时 运行 时,它 return 一个 '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)
您如何在启动时触发下载或这里是否存在一些安全问题?
可能 downloadHandler
还没有准备好。您可以使用 setTimeout(..., 0)
:
runjs("setTimeout(function(){document.getElementById('downloadData').click();},0);")