Спасибо за помощь @ ismirsehregal. Здесь я поделился обойти этот вопрос. Этот ответ использует textAreaInput
в режиме только для чтения, а не verbatimTextOutput
, как я первоначально просил. Тем не менее, я доволен результатом и окончательным появлением textAreaInput
.
Я научился выбирать тексты на основе этого поста (https://stackoverflow.com/a/50745110/7669809). Я также узнал, как установить режим только для чтениядля textAreaInput
из этого поста ( Сделать текстовую область доступной только для чтения с помощью jquery ). Вот мой код.
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)
Вот как это выглядит при запуске приложения.