Html 导航栏按钮没有';不要在单击上工作

Html 导航栏按钮没有';不要在单击上工作,html,r,shiny,shiny-server,shinyjs,Html,R,Shiny,Shiny Server,Shinyjs,我想在导航栏上放置一个电子邮件按钮。我已经在stackoverflow和网络上搜索过了,但是除了这个-,我找不到任何可靠的东西。我得到的最接近的方法是使用FluidRow和列放置,但在我的实际应用程序中它看起来很麻烦 目前,我已经把按钮放在我想要的地方,但是,它没有反应。我知道我可以在ui.R- a(actionButton(inputId=“an_email”,label=“Contact”, 图标=图标(“信封”,lib=“font-awesome”), href=“mailto:xyz@e

我想在导航栏上放置一个电子邮件按钮。我已经在stackoverflow和网络上搜索过了,但是除了这个-,我找不到任何可靠的东西。我得到的最接近的方法是使用
FluidRow
和列放置,但在我的实际应用程序中它看起来很麻烦

目前,我已经把按钮放在我想要的地方,但是,它没有反应。我知道我可以在
ui.R
-

a(actionButton(inputId=“an_email”,label=“Contact”,
图标=图标(“信封”,lib=“font-awesome”),
href=“mailto:xyz@email.us")
但我不知道如何接受这个想法,走向
服务器.R
如果有人能帮助我,我将不胜感激

库(闪亮)
#图书馆(降价)
图书馆(shinyjs)

ui当我在EDGE中查看您的示例时,它实际上正在工作(在Firefox中,弹出窗口被阻止,而在RStudio中,它不工作)。但是,您不需要服务器部件。您只需将按钮包装在
中即可

库(闪亮)
图书馆(shinyjs)
shinyApp(ui=fluidPage(
useShinyjs(),
导航栏页面(“导航栏!”,
选项卡面板(“绘图”),
标记$script(
HTML(“var header=$('.navbar>.container fluid');
header.append(“”)
)
)), 
服务器=功能(输入、输出、会话){
#不需要服务器部件
})

当我在EDGE中查看您的示例时,它实际上正在工作(在Firefox中,弹出窗口被阻止,而在RStudio中,它不工作)。但是,您不需要服务器部件。您只需将按钮包装在
中即可

库(闪亮)
图书馆(shinyjs)
shinyApp(ui=fluidPage(
useShinyjs(),
导航栏页面(“导航栏!”,
选项卡面板(“绘图”),
标记$script(
HTML(“var header=$('.navbar>.container fluid');
header.append(“”)
)
)), 
服务器=功能(输入、输出、会话){
#不需要服务器部件
})

谢谢你的时间,伙计。如果你不介意的话,快速问一个问题,为什么它不能在RStudio上工作?它不是在运行时创建了一个本地服务器/浏览器,所以它应该打开默认的应用程序电子邮件应用程序,不是吗?我还不熟悉Shiny,所以很抱歉,我不想听起来很聪明。我不确定RStudio在幕后使用的是什么,但最好在一个主要浏览器(Chrome、Firefox、Safari)中预览仪表板。RStudio支持越来越多的功能,但最终它并不是一个成熟的网络浏览器。明白了。再次感谢你的回答,老兄。1000倍谢谢!保重,谢谢你的时间,伙计。如果你不介意的话,快速问一个问题,为什么它不能在RStudio上工作?它不是在运行时创建了一个本地服务器/浏览器,所以它应该打开默认的应用程序电子邮件应用程序,不是吗?我还不熟悉Shiny,所以很抱歉,我不想听起来很聪明。我不确定RStudio在幕后使用的是什么,但最好在一个主要浏览器(Chrome、Firefox、Safari)中预览仪表板。RStudio支持越来越多的功能,但最终它并不是一个成熟的网络浏览器。明白了。再次感谢你的回答,老兄。1000倍谢谢!当心。
library(shiny)
library(shinyjs)

shinyApp(ui = fluidPage(
  useShinyjs(),
  navbarPage("Navbar!",
             tabPanel("Plot"),
             tags$script(
               HTML("var header = $('.navbar > .container-fluid');
                              header.append('<div style=\"float:right; padding-top: 8px\"><a href=\"mailto:xyz@email.us\"><button id=\"sendemail\" type=\"button\" class=\"btn btn-primary action-button\">Contact</button></a></div>')")
             )
  )), 
  
  server = function(input, output, session) {
  # no server part needed
})