javascript - 如何从 R Shiny 中的 JavaScript 获取屏幕分辨率?

标签 javascript r shiny screen resolution

我想从 JavaScript 获取屏幕分辨率,存储在 Shiny Server 上的 GetScreenWidth 变量中。

我试过引用:

  1. Receiving data from .js in server.R shiny
  2. https://ryouready.wordpress.com/2013/11/20/sending-data-from-client-to-server-and-back-using-shiny/

所以我有:

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
   })

 })

它将通过 verbatimTextOutput 返回 NULL

我该如何修改代码?谢谢!

最佳答案

问题是您在初始化 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 - 如何从 R Shiny 中的 JavaScript 获取屏幕分辨率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33250075/

相关文章:

r - 在应用程序内更新传单 map 的 Shiny (R) 问题

javascript - 如何在导航栏功能中简化 jQuery?

javascript - 在 jquery 中设置 css 时,Chrome 中的背景颜色不会改变

R Shiny 停止代码执行,直到模态关闭

r - 如何根据R中的源向量创建相互互补的向量对

r - 将多个文件从 Shiny 的应用程序上传到谷歌驱动器

javascript - 电话间隙 : How to upload APK files on Google Play Store

javascript - 如何将列表显示为表格?

r - igraph中的子组件失败

r - 在并行 foreach 计算中使用标准 R Shiny 进度条