首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关闭(Chrome)浏览器窗口的导航栏单击

关闭(Chrome)浏览器窗口的导航栏单击
EN

Stack Overflow用户
提问于 2015-07-13 00:40:57
回答 1查看 1.5K关注 0票数 1

当我点击一个闪亮的应用程序中的动作按钮时,我一直在使用由@wch on SO建议关闭浏览器窗口。效果很好。

现在我想停止我的应用程序,当点击导航栏中的元素时,关闭bowser窗口(在Chrome中)。在我正在使用的tabPanel调用下面

代码语言:javascript
复制
tabPanel(title = "", value = "Stop", icon = icon("power-off"))

input$navbar == "Stop"的值被选中时,我使用一个观察者来停止应用程序(例如,当选中导航栏中的图标时),但是我不知道如何激活window.close()调用。

通过@wch关闭浏览器窗口的操作按钮代码

代码语言:javascript
复制
tags$button(
  id = 'close',
  type = "button",
  class = "btn action-button",
  onclick = "window.close();",
  "Close window"
)

编辑:

找到了一个我想做的工作。

代码语言:javascript
复制
tabPanel(tags$a(id = "quitApp", href = "#", class = "action-button",
         list(icon("power-off"), ""), onclick = "window.close();"))

不幸的是,它导致了一个相当糟糕的肚脐。我问了一个相关问题关于闪亮的google组

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-13 03:10:36

您可以使用星光包轻松地调用javascript函数,这基本上就是您所需要做的。免责声明:那个包裹是我写的。下面是你想做的事情的代码:

代码语言:javascript
复制
library(shinyjs)
jscode <- "shinyjs.closewindow = function() { window.close(); }"

runApp(shinyApp(
  ui = tagList(
    useShinyjs(),
    extendShinyjs(text = jscode),
    navbarPage(
      "test",
      id = "navbar",
      tabPanel(title = "tab1"),
      tabPanel(title = "", value = "Stop", icon = icon("power-off"))
    )
  ),
  server = function(input, output, session) {
    observe({
      if (input$navbar == "Stop") {
        js$closewindow();
        stopApp()
      }
    })
  }
))

编辑

如果您不想使用JS包,您可以使用本机with做同样的事情:

代码语言:javascript
复制
jscode <- "Shiny.addCustomMessageHandler('closeWindow', function(m) {window.close();});"

runApp(shinyApp(
  ui = tagList(
    tags$head(tags$script(HTML(jscode))),
    navbarPage(
      "test",
      id = "navbar",
      tabPanel(title = "tab1"),
      tabPanel(title = "", value = "Stop", icon = icon("power-off"))
    )
  ),
  server = function(input, output, session) {
    observe({
      if (input$navbar == "Stop") {
        session$sendCustomMessage(type = "closeWindow", message = "message")
        stopApp()
      }
    })
  }
))
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31374004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档