如何从 R Shiny 中的 JavaScript 获取屏幕分辨率?
How to get screen resolution from JavaScript in R Shiny?
我想从 JavaScript 获取屏幕分辨率,存储在 Shiny Server 上的 GetScreenWidth
变量中。
我试过参考:
所以我有:
ui.R
shinyUI(
bootstrapPage(
verbatimTextOutput("results")
,tags$script('
var jsWidth = screen.width;
Shiny.onInputChange("GetScreenWidth",jsWidth);
')
)
)
server.R
shinyServer(function(input,output){
output$results=renderPrint({
input$GetScreenWidth
})
})
return NULL
verbatimTextOutput
。
我该如何修改代码?谢谢!
问题是您 运行 初始化 Shiny 之前的 JavaScript 代码。您可以使用新功能来告诉您 shiny 何时准备就绪,这里是示例代码
jscode <-
'$(document).on("shiny:connected", function(e) {
var jsWidth = screen.width;
Shiny.onInputChange("GetScreenWidth",jsWidth);
});
'
library(shiny)
runApp(shinyApp(
ui = fluidPage(
tags$script(jscode)
),
server = function(input, output, session) {
observe({
cat(input$GetScreenWidth)
})
}
))
我想从 JavaScript 获取屏幕分辨率,存储在 Shiny Server 上的 GetScreenWidth
变量中。
我试过参考:
所以我有:
ui.R
shinyUI(
bootstrapPage(
verbatimTextOutput("results")
,tags$script('
var jsWidth = screen.width;
Shiny.onInputChange("GetScreenWidth",jsWidth);
')
)
)
server.R
shinyServer(function(input,output){
output$results=renderPrint({
input$GetScreenWidth
})
})
return NULL
verbatimTextOutput
。
我该如何修改代码?谢谢!
问题是您 运行 初始化 Shiny 之前的 JavaScript 代码。您可以使用新功能来告诉您 shiny 何时准备就绪,这里是示例代码
jscode <-
'$(document).on("shiny:connected", function(e) {
var jsWidth = screen.width;
Shiny.onInputChange("GetScreenWidth",jsWidth);
});
'
library(shiny)
runApp(shinyApp(
ui = fluidPage(
tags$script(jscode)
),
server = function(input, output, session) {
observe({
cat(input$GetScreenWidth)
})
}
))