gpt4 book ai didi

html - 如何在 Shiny 中默认选择 verbatimTextOutput 中的文本?

转载 作者:行者123 更新时间:2023-11-28 00:31:54 27 4
gpt4 key购买 nike

这是与我之前的问题 (Is it possible to have fixed width verbatimTextOutput and have texts change lines in Shiny?) 相关的问题。我有以下 Shiny 的应用程序 ( https://yuchenw.shinyapps.io/Shiny_verbatimtext_fixed/ ),它带有一个可以显示长文本的 verbatimTextOutput。是否可以默认选择这些文本?一个例子是书签按钮的行为。如下图所示,当弹出书签窗口时,文本已经被选中。我想使用 verbatimTextOutput 重现相同的行为。

enter image description here

代码

library(shiny)

ui <- function(request){
fluidPage(
tags$style(type='text/css', '#txt_out {white-space: pre-wrap;}'),
column(
width = 6,
textInput(inputId = "txt", label = "Type in some texts",
value = paste0(rep(letters, 10), collapse = "")),
strong("Show the texts"),
verbatimTextOutput("txt_out"),
br(),
bookmarkButton()
)
)
}
server <- function(input, output, session){
output$txt_out <- renderText({
input$txt
})
}
enableBookmarking("url")
shinyApp(ui, server)

最佳答案

感谢@ismirsehregal 的帮助。在这里,我分享了这个问题的解决方法。这个答案在只读模式下使用 textAreaInput,而不是我最初要求的 verbatimTextOutput。不过,我对 textAreaInput 的结果和最终外观感到满意。

我学会了如何根据这篇文章 ( https://stackoverflow.com/a/50745110/7669809 ) 选择文本。我还从这篇文章 (Make textarea readonly with jquery) 中学习了如何为 textAreaInput 设置只读模式。这是我的代码。

library(shiny)

ui <- function(request){
fluidPage(
column(
width = 6,
tags$head(
tags$script("
Shiny.addCustomMessageHandler('selectText', function(message) {
$('#txt_out').select();
$('#txt_out').prop('readonly', true);
});
")
),
textInput(inputId = "txt", label = "Type in some texts",
value = paste0(rep(letters, 10), collapse = "")),
textAreaInput("txt_out", label = "Show the texts", heigh = "300px"),
br(),
bookmarkButton()
)
)
}
server <- function(input, output, session){
observeEvent(input$txt, {
updateTextAreaInput(session = session, inputId = "txt_out", value = input$txt)
})
observeEvent(input$txt_out, {
session$sendCustomMessage("selectText", "select")
})
}
enableBookmarking("url")
shinyApp(ui, server)

这是应用运行时的样子。

enter image description here

关于html - 如何在 Shiny 中默认选择 verbatimTextOutput 中的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58524163/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com