2016-08-23 32 views
2

如何被点击的actionbutton当打开R中一个新的浏览器,这个新的浏览器应显示创建并定义了内部fluidpage形式:如何在点击动作按钮时在R中打开新的浏览器?

例如

observeEvent (input$button1, { 
    output$view <- renderUI({isolate({ 
     div(id="view1", 
    fluidPage(shinyjs::useShinyjs(), 
     fluidRow(column(3, 
     textInput("mrdno",label = "MRD NO:",value="111")), 
    column(3, 
    textInput("namevpmodify",label = "NAME",value="AAA")) 
    ))) 
})})}) 

我想显示定义的形式当点击按钮1时,在div id="view1"内部显示在另一个浏览器窗口中。

回答

0

我不认为你可以创建一个单独的窗口没有R的第二个实例(即第二个Shiny应用程序)。您可以使用任意HTML轻松打开新窗口,但它不会像Shiny应用程序那样链接到服务器中的R,因此您将无法包含textInput,但可能有办法获取新的窗口与服务器交谈(我对此表示怀疑)。见下面的例子为任意HTML创建新窗口:

library(shiny) 
runApp(
    list(
    ui = fluidPage(
     tags$script(
     "Shiny.addCustomMessageHandler('new-page', function(HTML) { 
      var w=window.open(); 
      $(w.document.body).html(HTML); 
     });" 
    ), 
     textInput("html","Enter arbitrary HTML"), 
     actionButton("btn","Press Me to render HTML in new window") 
    ), 
    server = function(input, output, session) { 
     observeEvent(input$btn,{ 
     session$sendCustomMessage("new-page",list(
      HTML(
       input$html 
      ) 
     ) 
     ) 
     }) 
    } 
) 
) 

您可能感兴趣的shinyBS包的创建模式窗口的能力。所以,你想在UI类似

bsModal("view1","pickAname","button1", fluidRow(column(3, 
     textInput("mrdno",label = "MRD NO:",value="111")), 
    column(3, 
    textInput("namevpmodify",label = "NAME",value="AAA")) 
+0

谢谢主席先生,但我创造在另一个按钮的observeevent服务器端的按钮Button1的,那怎么办代码写成bsModel的界面内写入.R和id button1在那里不可用。 – Rad

相关问题