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

如何在R Shiny Conductor Tour中嵌入Javascript代码?

在Shiny应用的Conductor导览中使用JavaScript的示例

Conductor包的官方文档仅说明onComplete、onCancel等回调参数可填入JavaScript代码,但未提供具体示例,这让对JS了解较少的开发者难以上手。

以下示例展示了如何编写JS代码来更新指定的input$变量值,该值可被Shiny中的observeEvent()检测到。示例中我们将input$my_tour_state更新为true或false,同样也支持传入数字或字符类型的值,以此实现通过Conductor导览步骤控制输入组件的效果。

library(shiny)
library(conductor)

ui <- fluidPage(
  use_conductor(), 
  # 创建启动导览的按钮
  actionButton(inputId = "ui_start_tour",
               label = "开始导览"),
  # 输出导览状态
  verbatimTextOutput(outputId = "tour_status")
)

server <- function(input, output, session) {
  
  # 创建Conductor导览
  conductor <- Conductor$
    new()$
    step(
      id = "step1",
      title = "欢迎",
      text = "这是第一步。",
      # 用于更新reactiveVal `tour_state`的JavaScript代码
      onShow = "Shiny.setInputValue('my_tour_state', true, {priority: 'event'})"
    )$
    step(
      id = "step2",
      title = "第二步",
      text = "这是第二步。",
      onShow = "Shiny.setInputValue('my_tour_state', false, {priority: 'event'})"
    )
  
  # 点击按钮时启动导览
  observeEvent(eventExpr = input$ui_start_tour,
               handlerExpr = {
                 conductor$init()$start()
               })
  
  # 响应式显示导览状态
  output$tour_status <- renderText({
    paste("导览状态:", input$my_tour_state)
  })
}

shinyApp(ui, server)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.01 16:13:10