You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shiny应用按钮点击跳转URL如何改为在新标签或窗口打开?

解决Shiny应用按钮点击在新标签页打开URL的问题

只需要修改自定义消息处理器中的JavaScript代码,将window.location替换为window.open并指定_blank参数,即可实现点击按钮后在新标签页打开目标URL。修改后的完整代码如下:

library(shiny)

myjs <- "Shiny.addCustomMessageHandler('mymessage', function(message) {
  // 使用window.open并指定_blank参数打开新标签页
  window.open(message, '_blank');
});"

ui <- fluidPage(
  tags$head(tags$script(myjs)),     
  actionButton("button", "Click me")
)

server <- function(input, output, session) {
  
  observeEvent(input$button,{
    url <- "https://stackoverflow.com/"
    session$sendCustomMessage("mymessage", url)
  })
}

shinyApp(ui, server)

关键说明:

  • window.open(message, '_blank')中的_blank参数强制浏览器在新标签页打开链接,若省略该参数,部分浏览器可能会在已有标签页中打开(取决于浏览器设置)。
  • 由于该操作是通过用户主动点击按钮触发的,大部分浏览器不会拦截此弹窗;若遇到拦截情况,只需引导用户允许当前站点的弹窗权限即可。
  • 如需自定义新窗口的大小、位置等属性,可以添加第三个参数,例如:window.open(message, '_blank', 'width=800,height=600,top=100,left=100')。

内容的提问来源于stack exchange,提问作者Parinn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 18:52:39