【问题标题】:Override Behavior: Clicking a .ipynb notebook on the Jupyter Dashboard, serves (opens) the notebook覆盖行为:单击 Jupyter 仪表板上的 .ipynb 笔记本,服务(打开)笔记本
【发布时间】:2021-11-24 19:04:02
【问题描述】:

默认情况下,当在 Jupyter 仪表板上单击 .ipynb 笔记本时,它会在新选项卡中打开该笔记本。 我想覆盖此行为,因此,单击 .ipynb 文件应该只是将笔记本链接(应该打开)发送到 custom.js,而不提供(打开)笔记本。

在 custom.js 中提供链接后,我使用 wink 请求将其发送到 C++,然后在其他浏览器中打开该链接。

需要帮助:获取 custom.js 中的链接并停止 notebook 的执行

我可以使用一些 hacky 来获取 custom.js 中的链接:$('a')[1]

但我仍然不知道如何阻止 Jupyter 为笔记本提供服务。
这可能吗?通过文档挖掘,我发现了这个extra_services,但我可以为此目的创建一个处理程序吗?

感谢您的帮助。

【问题讨论】:

  • 请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。

标签: javascript python jupyter-notebook


【解决方案1】:

我找不到正式执行此操作的方法,此处或 Jupyter 社区论坛上没有答案。

我使用了一个不太高效的 hacky 解决方案让它工作,我在这里分享。

过程

  • 将所有 Jupyter 打开函数的目标设置为 _self 而不是 _blank(确保链接在同一选项卡中打开,而不是在新选项卡中打开)
  • 使用document.referrer,获取上一页的URL
  • 使用$('a').href获取当前页面的链接
  • 将当前页面的链接和上一页的链接发送到 Cpp
  • 使用 cpp 在新浏览器中加载当前页面链接,将旧浏览器选项卡设置为上一个链接。

【讨论】:

    猜你喜欢
    • 2015-05-12
    • 2018-01-13
    • 1970-01-01
    • 2019-06-17
    • 2017-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    相关资源
    最近更新 更多