如何在Shiny应用的visNetwork图中模拟特定节点点击?
Shiny测试中模拟visNetwork模块节点点击的实现
在Shiny模块化应用里,若要对process_genealogy模块下的visNetwork图模拟特定节点点击,可通过app$executeScript()执行JavaScript代码实现。
关键信息
- visNetwork的Shiny输出定义:
output$network_output <- renderVisNetwork({...}) - 模块对应的实例ID:
process_genealogy-network_output(可通过控制台执行HTMLWidgets.find('#process_genealogy-network_output')验证获取实例)
实现代码
app$executeScript( " // 获取模块中的visNetwork实例 var network = HTMLWidgets.find('#process_genealogy-network_output'); // 模拟节点点击:先设置选中状态,再触发click事件 network.setSelection({nodes: ['3027356-24']}); network.emit('click', { nodes: ['3027356-24'], edges: [] }); " )
代码说明
HTMLWidgets.find():通过模块生成的DOM ID定位到visNetwork的实例对象network.setSelection():设置目标节点为选中状态,还原点击后的视觉反馈network.emit('click'):手动触发click事件,传递选中节点的信息,确保Shiny端能捕获到点击事件的响应逻辑
内容的提问来源于stack exchange,提问作者Silvia Leccabue
相关产品推荐
相关产品推荐

