将iframe嵌入Shiny应用程序中

26

这是我的用户界面。R

shinyUI(fluidPage(titlePanel("Getting Iframe"), 
              sidebarLayout(
                  sidebarPanel(
                      fluidRow(
                          column(6,
                                 selectInput("Member", label=h5("Choose a option"),
                                             choices=c('BCRA1','FITM2'))
                          ))),
                  mainPanel(fluidRow(
                      column(3, htmlOutput("frame"))
                  )
                  )
              )))

这是我的server.R

library(shiny)
members <- data.frame(name=c("Name 1", "Name 2"), nr=c('BCRA1','FITM2'))


shinyServer(function(input, output) {
loadframe <- reactive({ 
    validate(
        need(input$Member, "Member input is null!!")
    )
    query <- members[which(members$nr==input$Member),2]
    paste0("http://news.scibite.com/scibites/news.html?q=GENE$",query)
 })
 output$frame <- renderUI({
    tags$iframe(src=loadframe(), height=600, width=535)
   })
 })

我想从网页中获取iframe,但它打印出空白。有什么帮助可以提供吗?

1个回答

37
library(shiny)

members <- data.frame(name=c("Name 1", "Name 2"), nr=c('BCRA1','FITM2'))

ui <- fluidPage(titlePanel("Getting Iframe"), 
                sidebarLayout(
                  sidebarPanel(
                    fluidRow(
                      column(6, selectInput("Member", label=h5("Choose a option"),choices=c('BCRA1','FITM2'))
                      ))),
                  mainPanel(fluidRow(
                    htmlOutput("frame")
                  )
                  )
                ))

server <- function(input, output) {
    observe({ 
    query <- members[which(members$nr==input$Member),2]
    test <<- paste0("http://news.scibite.com/scibites/news.html?q=GENE$",query)
  })
  output$frame <- renderUI({
    input$Member
    my_test <- tags$iframe(src=test, height=600, width=535)
    print(my_test)
    my_test
  })
}

shinyApp(ui, server)

在此输入图片描述


当我使用这种方法时,我的浏览器下载HTML而不是渲染它? - undefined
所以你将下载窗口的内容,它会做类似的事情,就好像你以一些限制访问了那个页面一样。在这里你并没有创建任何东西,只是在你的页面中显示一个页面。要获取更多信息,请阅读https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe。 - undefined
我明白了。所以我想我的真正问题是,我希望能够在我的R Shiny应用程序中查看Microsoft Word文档。我发现这很困难,因为使用R Markdown进行转换后,格式会丢失。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接