将javascript添加到您的模块中

将javascript添加到您的模块中,r,shiny,R,Shiny,背景 我想在我的闪亮模块中包含一些javascript,但不管我尝试了什么,java脚本都不会出现在最终的应用程序中。我做错了什么 代码 library(shiny) moduleUI <- function(id) { ns <- NS(id) js <- 'window.alert("fired from within the module");' tags$body(tags$script(HTML(js))) ## does not work

背景

我想在我的闪亮模块中包含一些javascript,但不管我尝试了什么,java脚本都不会出现在最终的应用程序中。我做错了什么

代码

library(shiny)

moduleUI <- function(id) {
   ns <- NS(id)
   js <- 'window.alert("fired from within the module");'
   tags$body(tags$script(HTML(js))) ## does not work
   tags$head(tags$script(HTML(js))) ## does not work either
   div("I am the only element")
}


module <- function(input, output, session) {
}

ui <- fluidPage(
   moduleUI("test"),
   tags$body(tags$script(HTML('window.alert("fired from the main");')))
)

server <- function(input, output, session) {
   handle <- callModule(module, "test")
}

shinyApp(ui = ui, server = server)
库(闪亮)

moduleUI尝试一下,因为我认为您定义了脚本,但没有将其附加到任何HTML元素

moduleUI <- function(id) {
  ns <- NS(id)
  js <- 'window.alert("fired from within the module");'
  #tags$body(tags$script(HTML(js))) ## does not work
  #tags$head(tags$script(HTML(js))) ## does not work either
  div(tags$head(tags$script(HTML(js))) ,"I am the only element")
}

啊,我就知道事情就这么简单!我忘了在模块中只返回返回值(或最后一条语句)(好吧,这是一个函数,所以没什么大不了的:)+1谢谢!作为参考,我最后使用了
tagList(tags$head(…)、div(…)