为什么在使用 html 标签和 bootstrap 时文本会出现在我闪亮的应用程序中
Why is text appearing in my shiny app when using html tags and bootstrap
下面是我的错误的最小示例:
library(shiny)
run_with_enter <- '
$(function() {
var $els = $("[data-proxy-click]");
$.each(
$els,
function(idx, el) {
var $el = $(el);
var $proxy = $("#" + $el.data("proxyClick"));
$el.keydown(function (e) {
if (e.keyCode == 13) {
$proxy.click();
}
});
}
);
});
'
ui1 <- function(){
tagList(
div(id = "login",
fluidPage(
textInput("uid", "Username"),
tagAppendAttributes(
passwordInput("pwd", "Password"),
`data-proxy-click` = "Login"
),
br(),
actionButton("Login", "Log in", class = "btn-success"),
htmlOutput("login_attempt")
)),
tags$style(type="text/css", "#login {font-size:10px; text-align: left;position:absolute;top: 40%;left: 50%;margin-top: -100px;margin-left: -150px;}")
)}
ui = (htmlOutput("page"))
server <- function(input, output, session) {
observeEvent(input$Login, {
cat("Login attempted \n")
})
output$page <- renderUI({
div(class="outer",do.call(bootstrapPage,c(tags$br(tags$script(HTML(run_with_enter))),ui1())))
})
}
shinyApp(ui, server)
当应用程序 运行 时,在左上角出现文本 "br",但其他一切似乎都正常运行。我已将问题隔离到代码片段:
tags$br(tags$script(HTML(run_with_enter))
但我不确定如何解决这个问题。我可以将 "br" 标签更改为任何有效的 HTML 标签(例如 "head"),左上角的文本将替换为新标签。
而不是
c(tags$br(tags$script(HTML(run_with_enter))), ui1())
你应该
list(tags$br(tags$script(HTML(run_with_enter))), ui1())
c()
函数从对象中剥离属性,这在本例中不是您想要的。比较 tags$br()
和 c(tags$br())
下面是我的错误的最小示例:
library(shiny)
run_with_enter <- '
$(function() {
var $els = $("[data-proxy-click]");
$.each(
$els,
function(idx, el) {
var $el = $(el);
var $proxy = $("#" + $el.data("proxyClick"));
$el.keydown(function (e) {
if (e.keyCode == 13) {
$proxy.click();
}
});
}
);
});
'
ui1 <- function(){
tagList(
div(id = "login",
fluidPage(
textInput("uid", "Username"),
tagAppendAttributes(
passwordInput("pwd", "Password"),
`data-proxy-click` = "Login"
),
br(),
actionButton("Login", "Log in", class = "btn-success"),
htmlOutput("login_attempt")
)),
tags$style(type="text/css", "#login {font-size:10px; text-align: left;position:absolute;top: 40%;left: 50%;margin-top: -100px;margin-left: -150px;}")
)}
ui = (htmlOutput("page"))
server <- function(input, output, session) {
observeEvent(input$Login, {
cat("Login attempted \n")
})
output$page <- renderUI({
div(class="outer",do.call(bootstrapPage,c(tags$br(tags$script(HTML(run_with_enter))),ui1())))
})
}
shinyApp(ui, server)
当应用程序 运行 时,在左上角出现文本 "br",但其他一切似乎都正常运行。我已将问题隔离到代码片段:
tags$br(tags$script(HTML(run_with_enter))
但我不确定如何解决这个问题。我可以将 "br" 标签更改为任何有效的 HTML 标签(例如 "head"),左上角的文本将替换为新标签。
而不是
c(tags$br(tags$script(HTML(run_with_enter))), ui1())
你应该
list(tags$br(tags$script(HTML(run_with_enter))), ui1())
c()
函数从对象中剥离属性,这在本例中不是您想要的。比较 tags$br()
和 c(tags$br())