我正在尝试找出完成所有计算后如何用代码关闭自定义sweetalert
的过程。
我在我的应用程序中显示了一个自定义shinyjs::js$swalgif
,在长时间计算的开始处放置了一个旋转器GIF。一旦完成计算(结果现在已在我闪亮的App中绘制,我想删除/关闭消息而无需用户单击任何内容
我已经尝试了一些方法;
swal.close(), closeSweetAlert(session), removeModal(session)
但无济于事。 另请参阅github issue ps不确定为什么GIF这么小,以及为什么虚拟应用程序中缺少html文本主体(不过在这里并不重要)
jscodeswal <- c(
'shinyjs.swalGIF= function(params) {
var defaultParams = {title: null, html : null, imageUrl: null };
params = shinyjs.getParams(params, defaultParams);
swal({title : params.title, html : params.html, imageUrl : params.imageUrl,
animation : false,
showConfirmButton : false,
showCancelButton : false,
allowOutsideClick: false,
allowEscapeKey: false
});
};'
)
if (interactive()) {
require(shiny)
require(shinyalert)
require(shinyjs)
shinyApp(
ui = fluidPage(
shinyjs::useShinyjs(),
shinyjs::extendShinyjs(text = jscodeswal),
tags$head(
includeScript("https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.0.1/sweetalert.min.js"),
includeCSS("https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.0.1/sweetalert.min.css")
),
actionButton("btn", "Click me")
),
server = function(input, output, session) {
observeEvent(input$btn, {
# Show a simple modal
shinyjs::js$swalGIF(title = '<span style="color:#339FFF; font-size: 30px">Test message<span>',
html = '<br><span style = "font-weight: normal; color:#797979">Please close me when done!<br><br>',
imageUrl = 'https://media.giphy.com/media/4HgDESJLG1JSmqTOnH/giphy.gif')
})
}
)
}