Aşağıdaki örneğe bakın. Tarayıcı pencere boyutunu (başlangıç boyutu ve herhangi bir yeniden boyutlandırma) algılamak için Javascript kullanır ve verileri işlemek için sunucu koduna göndermek için Shiny.onInputChange
kullanın. İlk pencere boyutunu elde etmek için shiny:connected
olayını kullanır; Shiny.onInputChange
, parlak olana kadar kullanım için hazır değildir. paketin htmlwidgets
den JS
ile parlak pencere boyutlarını almak için
library(shiny)
# Define UI for application that draws a histogram
ui <- shinyUI(fluidPage(
# Application title
titlePanel("Old Faithful Geyser Data"),
# Sidebar with a slider input for number of bins
sidebarLayout(
sidebarPanel(
tags$head(tags$script('
var dimension = [0, 0];
$(document).on("shiny:connected", function(e) {
dimension[0] = window.innerWidth;
dimension[1] = window.innerHeight;
Shiny.onInputChange("dimension", dimension);
});
$(window).resize(function(e) {
dimension[0] = window.innerWidth;
dimension[1] = window.innerHeight;
Shiny.onInputChange("dimension", dimension);
});
')),
sliderInput("bins",
"Number of bins:",
min = 1,
max = 50,
value = 30)
),
# Show a plot of the generated distribution
mainPanel(
verbatimTextOutput("dimension_display"),
plotOutput("distPlot")
)
)
))
# Define server logic required to draw a histogram
server <- shinyServer(function(input, output) {
output$dimension_display <- renderText({
paste(input$dimension[1], input$dimension[2], input$dimension[2]/input$dimension[1])
})
output$distPlot <- renderPlot({
# generate bins based on input$bins from ui.R
x <- faithful[, 2]
bins <- seq(min(x), max(x), length.out = input$bins + 1)
# draw the histogram with the specified number of bins
hist(x, breaks = bins, col = 'darkgray', border = 'white')
})
})
# Run the application
shinyApp(ui = ui, server = server)
teşekkürler. Üzgünüm kontrol etmek çok uzun sürdü. Bunun dışında sidebarPanel dışında eklemek için daha iyi bir yer olurdu görünüyor. Örneğin, fluidPage çağrısından hemen sonra. –
Javascript, HTML'nin 'head' bölümünde (tag' $ head 'olarak kullandıkça)' head 'bölümünde görüneceği için Javascript'i nereye eklediğiniz önemli değildir. Html sayfasının kaynak kodunu doğrulayabilirsiniz. –