Include a javascript file in Shiny app
What you need to do is:
- create
www
folder in the same folder asserver.R
andui.R
- put javascript file into
www
folder. - put
tags$head(tags$script(src="hoge.js"))
in UI.
The folder looks like:
├── server.R
├── ui.R
└── www
└── hoge.js
The ui.R
is something like
library(shiny)
shinyUI(pageWithSidebar(
headerPanel("New Application"),
sidebarPanel(
sliderInput("obs",
"Number of observations:",
min = 1,
max = 1000,
value = 500)
),
mainPanel(
plotOutput("distPlot"),
tags$head(tags$script(src="hoge.js"))
)
))
and server.R
library(shiny)
shinyServer(function(input, output) {
output$distPlot <- renderPlot({
dist <- rnorm(input$obs)
hist(dist)
})
})
Note that these are templates generated by Rstudio.
Now head
of html looks like:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
... snip ...
<script src="shared/slider/js/jquery.slider.min.js"></script>
<script src="hoge.js"></script>
</head>
Another way is to use:
includeScript("mapManipulator.js"),
└──shiny
├── server.R
├── ui.R
└── www
├── stylesheet.css
└── js
└── hoge.js
ui.R
Either one of them will work
1. tags$head(HTML("<script type='text/javascript' src='js/hoge.js'></script>"))
2. HTML('<head>
<link rel="stylesheet" type="text/css" href="stylesheet.css">
<script type="text/javascript" src="js/hoge.js"></script>
</head>')