【问题标题】:Add class to <html> tag at beginning of page in Shiny App在 Shiny App 的页面开头添加类到 <html> 标签
【发布时间】:2016-07-22 16:21:21
【问题描述】:

我想在闪亮的应用程序中呈现的 HTML 开头的标记中添加一个类。

例如,使用此代码生成一个基本应用程序:

library(shiny)
ui <- basicPage()
server <- function(input, output){}
shinyApp(ui, server)

如果您检查页面,您会看到开头的 html 标记为:

<html style="overflow: hidden;">

我想把它变成这样:

<html class="myclass" style = "overflow: hidden;">

有没有办法在不使用 javascript 的情况下做到这一点?

【问题讨论】:

    标签: r shiny


    【解决方案1】:

    您可以为此使用tags$htmltags 包含更多其他HTML标签,您可以查找它们?shiny::tags

    library(shiny)
    ui <- basicPage(
      tags$html(class="myclass", style = "overflow: hidden;")
    )
    server <- function(input, output){}
    shinyApp(ui, server)
    

    回复评论:

    这并不完全符合我的要求。这将在页面内添加一个新的 html 标签,而我想编辑自动生成的标签

    你确定吗?当我检查 HTML 代码时,我可以看到它修改了 标签:

    【讨论】:

    • 这并不完全符合我的要求。这将在页面内添加一个新的&lt;html&gt; 标签,而我想编辑自动生成的标签。
    • 我相信,这个tags$html修改了自动生成的。我在答案中添加了屏幕截图
    • 你是对的。我没有完全理解 RStudio 是如何拥有它的页面结构的,所以我对它的检查部分感到困惑。谢谢!
    【解决方案2】:

    您可以使用shinyjs 包,它有一个名为addClass() 的函数。它确实在引擎盖下使用了 javascript,所以我不确定这是否适合您。应该是这样的:

    library(shiny)
    ui <- basicPage(shinyjs::useShinyjs())
    server <- function(input, output){
      shinyjs::addClass(class = "myclass", selector = "html")
    }
    shinyApp(ui, server)
    

    【讨论】:

    • 我本来不想自己写js来做的,但是这样就完美了!谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-25
    • 2018-01-03
    • 1970-01-01
    • 1970-01-01
    • 2018-02-05
    • 2015-06-21
    相关资源
    最近更新 更多