我添加了代码以在我正在处理的Shinydashboard应用程序的标题中显示徽标。图片显示了我希望的样子,但是代码却出现在Internet浏览器的工作表标签中,这显然不理想,有没有办法防止这种情况发生?
我使用的相关代码行是:
dashboardHeader(title = tags$a(tags$img(src = "/MainLogo.png", align = "left")))
下面提供了一个完整的工作示例(图像文件位于app项目文件夹中的“ www”文件夹中)。
## app.R ##
library(shiny)
library(shinydashboard)
ui <- dashboardPage(
dashboardHeader(title = tags$a(tags$img(src = "/MainLogo.png", align = "left"))),
dashboardSidebar(),
dashboardBody(
# Boxes need to be put in a row (or column)
fluidRow(
box(plotOutput("plot1", height = 250)),
box(
title = "Controls",
sliderInput("slider", "Number of observations:", 1, 100, 50)
)
)
)
)
server <- function(input, output) {
set.seed(122)
histdata <- rnorm(500)
output$plot1 <- renderPlot({
data <- histdata[seq_len(input$slider)]
hist(data)
})
}
shinyApp(ui, server)
答案 0 :(得分:1)
我之前也遇到过同样的问题,希望对您有用。我不得不回顾一下以前的应用程序,它是在ui.R的边栏环境下,您可能需要尝试放置它的位置,但是它应该可以工作。
HTML('<script> document.title = "Internet Tab Name"; </script>')
答案 1 :(得分:0)
进行更多搜索后,我发现一种解决方案是将浏览器选项卡中所需的标题添加到代码的dashboardPage部分中。
ui <- dashboardPage(
title = "My Demo App",
因此,该示例的完整代码为:
## app.R ##
library(shiny)
library(shinydashboard)
ui <- dashboardPage(
title = "My Demo App",
dashboardHeader(title = tags$a(tags$img(src = "/MainLogo.png", align = "left"))),
dashboardSidebar(),
dashboardBody(
# Boxes need to be put in a row (or column)
fluidRow(
box(plotOutput("plot1", height = 250)),
box(
title = "Controls",
sliderInput("slider", "Number of observations:", 1, 100, 50)
)
)
)
)
server <- function(input, output) {
set.seed(122)
histdata <- rnorm(500)
output$plot1 <- renderPlot({
data <- histdata[seq_len(input$slider)]
hist(data)
})
}
shinyApp(ui, server)
答案 2 :(得分:0)
另一个选择是使用可以编辑或修改标题的JavaScript。因此,为了将JS脚本插入Shiny应用程序,可以使用tags$head(tags$script(...))
,这意味着JavaScript仅会出现在文档的<head>
中。
所以下面的部分
tags$head(tags$script(
" $(document).ready(function() {
document.title = 'My Demo App';
});"
)),
可以插入dashboardBody()
内。