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

如何重写Jupyter Dashboard的.ipynb点击行为以阻止默认打开并获取链接

实现方案

优先推荐:前端事件拦截(无需修改后端服务)

你不需要额外配置后端处理程序,直接在custom.js中拦截.ipynb文件的点击事件即可完全阻止默认的服务启动逻辑,实现方式更轻量稳定:

  • 替换你当前用索引取<a>标签的写法,用Jupyter官方渲染时自带的属性匹配链接,避免Dashboard排序、扩展安装导致的索引失效问题,匹配规则为a[data-type="notebook"]
  • 点击事件触发时调用preventDefault()和stopPropagation(),即可阻止Jupyter默认的跳转、笔记本服务启动逻辑,同时拿到目标链接供你后续调用
    示例代码如下:
// 写入custom.js即可生效
$(document).on('click', 'a[data-type="notebook"]', function(e) {
  // 阻止默认行为,完全拦截Jupyter的打开笔记本请求
  e.preventDefault();
  e.stopPropagation();
  // 获取当前点击的笔记本完整路径
  const targetNotebookUrl = $(this).attr('href');
  // 此处插入你通过wink Request发送链接给C++程序的逻辑
})

extra_services方案说明

你提到的extra_services配置也可以实现该需求,但对你的场景来说冗余度较高:

  • extra_services的作用是注册自定义后端路由处理程序,你可以通过它编写自定义Handler接管/notebooks/路径下所有ipynb文件的请求,收到请求后返回自定义响应而非启动笔记本服务
  • 该方案的问题在于会拦截所有指向该路径的请求,包括后续你在其他浏览器中打开链接时也会被拦截,需要额外做请求来源、请求类型的校验逻辑,开发成本远高于前端拦截方案,非特殊需求不推荐使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 10:06:04