如何在闪亮的仪表板应用程序中包含远程 JavaScript 文件?
How to include a remote JavaScript file in a shiny dashboard app?
如何使用 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文件存储在本地并使用本地路径引用加载它,但无济于事。
所以我卡在了以下问题?
- 我真的可以使用
includeScript
和远程资源的路径吗?
- 我需要在哪里放置加载 JS 文件的指令(以及 JS 文件需要驻留在哪里)?
@daattali 提出了一个解决方案,用于使用 tags$head
的纯基于 Shiny 的实现(没有 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
。您不能只是开始提供要包含的 tags/UI 元素。 includescript 或任何其他此类元素应该放在 dashboardBody 中。例如
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) {
}
))
如何使用 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文件存储在本地并使用本地路径引用加载它,但无济于事。
所以我卡在了以下问题?
- 我真的可以使用
includeScript
和远程资源的路径吗? - 我需要在哪里放置加载 JS 文件的指令(以及 JS 文件需要驻留在哪里)?
@daattali 提出了一个解决方案,用于使用 tags$head
的纯基于 Shiny 的实现(没有 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
。您不能只是开始提供要包含的 tags/UI 元素。 includescript 或任何其他此类元素应该放在 dashboardBody 中。例如
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) {
}
))