在没有打开单独窗口的情况下打开闪亮窗口内的网页

时间:2014-09-12 06:08:02

标签: r shiny

我的网址随着闪亮应用的输入而变化。我想打开一个网页,并在闪亮的窗口的选项卡面板中显示它。每次我更改输入时,网页URL都会更新,我想在同一个标​​签页中显示该页面。截至目前,使用R的浏览器功能,网页将在一个单独的窗口中打开,而不是闪亮的窗口。

这是我案例的小测试示例

ui.R

shinyUI(fluidPage(
  titlePanel("opening web pages"),
  sidebarPanel(
    selectInput(inputId='test',label=1,choices=1:5)
    ),
  mainPanel(
    htmlOutput("inc")
  )
))

server.R

shinyServer(function(input, output) {
  getPage<-function() {
    return((browseURL('http://www.google.com')))
  }
  output$inc<-renderUI({
    x <- input$test  
    getPage()
    })
})

1 个答案:

答案 0 :(得分:9)

不要使用browseURL。这将在新窗口中明确打开网页。

library(shiny)
runApp(list(ui= fluidPage(
  titlePanel("opening web pages"),
  sidebarPanel(
    selectInput(inputId='test',label=1,choices=1:5)
  ),
  mainPanel(
    htmlOutput("inc")
  )
),
server = function(input, output) {
  getPage<-function() {
    return((HTML(readLines('http://www.google.com'))))
  }
  output$inc<-renderUI({
    x <- input$test  
    getPage()
  })
})
)

如果您想镜像页面,可以使用iframe

library(shiny)
runApp(list(ui= fluidPage(
  titlePanel("opening web pages"),
  sidebarPanel(
    selectInput(inputId='test',label=1,choices=1:5)
  ),
  mainPanel(
    htmlOutput("inc")
  )
),
server = function(input, output) {
  getPage<-function() {
    return(tags$iframe(src = "http://www.bbc.co.uk"
                       , style="width:100%;",  frameborder="0"
                       ,id="iframe"
                       , height = "500px"))
  }
  output$inc<-renderUI({
    x <- input$test  
    getPage()
  })
})
)