在 Shiny 应用程序中,是否可以有一个绑定(bind)来监听用户按下的键?
我对 JavaScript 不太熟悉,但我正在寻找类似的东西:
window.onkeydown = function (e) {
var code = e.keyCode ? e.keyCode : e.which;
alert(code);
};
然后在
server.R
中使用键输入,例如:shinyServer(function(input, output) {
output$text <- renderText({
paste('You have pressed the following key:', input$key)
})
# ...
})
最佳答案
您可以为按键添加监听器。 Shiny.onInputChange
可用于将按下的键绑定(bind)到 Shiny 的变量:
library(shiny)
runApp( list(ui = bootstrapPage(
verbatimTextOutput("results"),
tags$script('
$(document).on("keypress", function (e) {
Shiny.onInputChange("mydata", e.which);
});
')
)
, server = function(input, output, session) {
output$results = renderPrint({
input$mydata
})
}
))
对于
keydown
您可以替换的事件: tags$script('
$(document).on("keydown", function (e) {
Shiny.onInputChange("mydata", e.which);
});
')
关于R Shiny 键输入绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24973549/