shiny html的自定义UI元素中的换行符正在转换为<br>

uqjltbpv  于 2023-04-18  发布在  其他
关注(0)|答案(1)|浏览(119)

我试图创建一些自定义的HTML文本在我的应用程序的验证过程。
我之前所做的细节并不相关。下面是代码:

htmltools::HTML(as.character(shiny::div(style=paste0("color: green; font-size:",80,"px"),paste0("Test ","<br>","Test2"))))

它返回的是:

<div style="color: green; font-size:80px">Test &lt;br&gt;Test2</div>

当你在HTML中渲染它时,这不起作用,你不会得到换行符。
如果我将&lt;br&gt;替换为<br>并将其作为网页运行,它可以加载并正常工作:

<div style="color: green; font-size:80px">Test<br>Test2</div>

我已经尝试了相当多的搜索和其他stackoverflow职位,没有帮助。

5rgfhyps

5rgfhyps1#

问题是shiny::div会将<br>标签视为字符串,因此会将<>替换为相应的HTML实体。为了解决这个问题,将字符串 Package 在HTML()中,即做HTML(paste0("Test ","<br>","Test2"))。此外,不需要将shiny::div Package 在htmltools::HTML(as.character(...))中:

library(shiny)

ui <- fluidPage(
  shiny::div(HTML(paste0("Test", "<br>", "Test2")),
    style = paste0("color: green; font-size:", 80, "px")
  )
)

server <- function(input, output, session) {

}

shinyApp(ui, server)
#> 
#> Listening on http://127.0.0.1:7573

相关问题