Html 如何在Shiny中默认选择逐字输出的文本?

Html 如何在Shiny中默认选择逐字输出的文本?,html,css,r,shiny,Html,Css,R,Shiny,这是我上一个问题()的相关问题。我有一个闪亮的app(),它有一个逐字输出,可以显示长文本。默认情况下是否可以选择这些文本?书签按钮的行为就是一个例子。如下面的屏幕截图所示,当书签弹出窗口显示时,文本已经被选中。我想使用逐字输出重现相同的行为 代码 library(shiny) ui <- function(request){ fluidPage( tags$style(type='text/css', '#txt_out {white-space: pre-wrap;}'

这是我上一个问题()的相关问题。我有一个闪亮的app(),它有一个
逐字输出
,可以显示长文本。默认情况下是否可以选择这些文本?书签按钮的行为就是一个例子。如下面的屏幕截图所示,当书签弹出窗口显示时,文本已经被选中。我想使用
逐字输出
重现相同的行为

代码

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)
库(闪亮)

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

我学习了如何根据这篇文章选择文本()。我还从这篇文章()中学习了如何为
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)
库(闪亮)

ui您必须使用
逐字输出
还是
文本输出
也是一个选项
verbatimTextOutput
将文本包装在一个pre标记中,这会使事情变得更复杂。@ismirsehregal我认为
textOutput
也是一个选项。但我很想了解书签按钮是如何实现这一点的。书签按钮似乎正在使用
逐字输出
。我目前手头没有电脑。但是,可能会指向正确的方向。@ismirsehregal感谢您为我指明前进的道路。我会研究一下,看看能不能找到一个答案。那太好了,对不起,顺便说一句,要做的工作太多了。您可以为
textInput
找到另一种有趣的方法。