R Shinny-使用javascript直接从UI触发shinyalert弹出窗口

R Shinny-使用javascript直接从UI触发shinyalert弹出窗口,r,shiny,shinyalert,R,Shiny,Shinyalert,通过以下代码,我可以通过单击fileInput的问号触发纯javascript警报: 我想知道我是否可以触发一个shinyalertpopup(),而不是在服务器端没有任何观察者的情况下直接从UI触发一个简单的javascript警报 比如: shinyalert("Oops!", "Something went wrong.", type = "error") 如果没有解决办法,也欢迎与观察员提出任何其他建议 这是我为数不多的几次回答自己的帖子之一,但在搜索了更多关于堆栈溢出的内容后,我发

通过以下代码,我可以通过单击fileInput的问号触发纯javascript
警报:

我想知道我是否可以触发一个
shinyalert
popup(),而不是在服务器端没有任何观察者的情况下直接从UI触发一个简单的javascript警报

比如:

shinyalert("Oops!", "Something went wrong.", type = "error")

如果没有解决办法,也欢迎与观察员提出任何其他建议

这是我为数不多的几次回答自己的帖子之一,但在搜索了更多关于堆栈溢出的内容后,我发现了一个受帖子启发的解决方法

  • 我直接从网站下载了Sweet Alert库的
    sweetAlert.js
    文件
  • 我在我的应用程序的根目录中创建了一个
    www
    文件夹
  • 我在
    www
    目录中添加了sweetAlert.js文件,并在ui.R的dashboardBody()中添加了以下行:

    标记$head(标记$script(src=“sweetAlert.js”)


  • 现在我可以用任何参数直接调用
    Swal.fire
    函数,就像我在运行javascript的任何其他框架中通常所做的那样。

    这是我为数不多的几次回答我自己的帖子,但在搜索了更多关于堆栈溢出的内容后,我发现了一个受帖子启发的解决方法

  • 我直接从网站下载了Sweet Alert库的
    sweetAlert.js
    文件
  • 我在我的应用程序的根目录中创建了一个
    www
    文件夹
  • 我在
    www
    目录中添加了sweetAlert.js文件,并在ui.R的dashboardBody()中添加了以下行:

    标记$head(标记$script(src=“sweetAlert.js”)


  • 现在我可以用任何参数直接调用
    Swal.fire
    函数,就像我在运行javascript的任何其他框架中通常所做的那样。

    我认为使用观察者一点都不麻烦

    调用
    shinny.setInputValue(id,value),而不是
    alert()
    ,然后在服务器端可以
    observeEvent(输入[id],{shinyalert()})

    有关详细信息,请阅读本文:

    您只需要使用一个代码块就可以实现这一点

    一个例子

    在UI Javascript代码中定义自定义函数,并在
    onclick
    中调用它。 您可以将此函数放在项目文件夹的“www”文件夹中的helper.js中,即
    www/helper.js
    。通过标签$head(标签$script(src=“helper.js”)

    然后在服务器端定义一次观察者

    observeEvent(input$alertMessage, {
      alertData <- input$alertMessage
      req(alertData)
    
      shinyalert("title", alertData$message, type = alertData$type)
    })
    
    
    observeEvent(输入$alertMessage{
    
    alertData我认为使用观察者一点也不麻烦

    调用
    shinny.setInputValue(id,value);
    而不是
    alert()
    ,然后在服务器端可以
    observeEvent(input[id],{shinyalert()})

    有关详细信息,请阅读本文:

    您只需要使用一个代码块就可以实现这一点

    一个例子

    在UI Javascript代码中定义自定义函数,并在
    onclick
    中调用它。 您可以将此函数放在项目文件夹的“www”文件夹中的helper.js中,即
    www/helper.js
    。通过
    tags$head(tags$script(src=“helper.js”)

    然后在服务器端定义一次观察者

    observeEvent(input$alertMessage, {
      alertData <- input$alertMessage
      req(alertData)
    
      shinyalert("title", alertData$message, type = alertData$type)
    })
    
    
    observeEvent(输入$alertMessage{
    
    alertData我刚刚意识到,如果我像上面描述的那样合并sweetAlert.js文件,server.R中的shinyalert()函数将停止工作(可能是因为sweetAlert.js覆盖了
    useShinyalert()
    ),我刚刚意识到如果我像上面描述的那样合并sweetAlert.js文件,shinyalert()函数将停止工作server.R中的函数停止工作(可能是因为sweetAlert.js覆盖了
    useShinyalert()
    observeEvent(input$alertMessage, {
      alertData <- input$alertMessage
      req(alertData)
    
      shinyalert("title", alertData$message, type = alertData$type)
    })