如何在一个闪亮的仪表盘应用程序中包含一个远程的JavaScript文件? [英] How to include a remote JavaScript file in a shiny dashboard app?

查看:0
本文介绍了如何在一个闪亮的仪表盘应用程序中包含一个远程的JavaScript文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何使用shinydashboard在我的应用程序中包含远程JS文件?我知道有includeScript功能。我试过了

...

# using shiny dashboard
ui <- dashboardPage(

  includeScript("http://the.path.to/my/js-file.js")

  dashboardHeader(
    title = "My title",
    titleWidth = 400
  ),

...

这将导致错误:

Error in tagAssert(header, type = "header", class = "main-header") : 
Expected tag to be of type header

我尝试在其他地方发出调用,将其与tags$head组合,将JS文件存储在本地,并使用本地路径引用加载它,但无济于事。

所以我卡在以下问题上了?

  1. 我是否可以将includeScript与远程资源的路径一起使用?
  2. 加载JS文件需要放置哪条指令(JS文件需要驻留在哪里)?

@daattali已提出一个解决方案,用于使用tags$head进行纯粹的基于闪亮的实现(无shinydashboard),但这似乎不适用于shinydashboard。

推荐答案

您可以使用script标记的src参数包括远程JS文件

library(shiny)
jsfile <- "https://gist.githack.com/daattali/7519b627cb9a3c5cebcb/raw/91e8c041d8fe4010c01fe974c6a35d6dd465f92f/jstest.js"

runApp(shinyApp(
  ui = fluidPage(
    tags$head(tags$script(src = jsfile))
  ),
  server = function(input, output) {
  }
))

编辑:好的,所以您希望它与shinydashboard一起工作。这就是为什么你的方法行不通的原因。请查看dashboardPage的文档。第一个参数是header。您不能仅仅开始提供您想要包含的标记/UI元素。包含脚本或任何其他类似的元素应该放在仪表板Body中。例如

library(shiny)
library(shinydashboard)
jsfile <- "https://gist.githack.com/daattali/7519b627cb9a3c5cebcb/raw/91e8c041d8fe4010c01fe974c6a35d6dd465f92f/jstest.js"

runApp(shinyApp(
  ui = dashboardPage(
    header = dashboardHeader(),
    sidebar = dashboardSidebar(),
    body = dashboardBody(
      tags$head(tags$script(src = jsfile))
    )
  ),
  server = function(input, output) {
  }
))

这篇关于如何在一个闪亮的仪表盘应用程序中包含一个远程的JavaScript文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆