无法在 WebBrowser 中获取 IPython 笔记本的 url

Unable to get IPython Notebook's url in WebBrowser

我正在使用 System.Windows.Forms.WebBrowser 在 Windows Forms 应用程序中显示网页。我要显示的 Url 是 IPython 笔记本,即

http://localhost:8888/tree

我可以使用以下代码实现此目的,

this.webBrowser.Navigate("http://localhost:8888/", false)

现在在这个页面中,当我点击新建->Python2 创建一个新笔记本时,它会生成一个新的 url,就像

http://localhost:8888/notebooks/Untitled.ipynb?kernel_name=python2 

我的要求是在 WindowsForms 应用程序中获取这个新的 Url。我尝试了 Navigating、Navigated 事件,我得到了新的 url as,

http://localhost:8888/tree#

而且我无法获得正确的 url。对此有什么建议吗?谢谢。

我已经通过编辑 IPython 包中的 Javascript 文件成功地解决了这个问题。您可以在 Ipython 安装路径找到 javascript 文件,

IPython\html\static\tree\js\newnotebook.js

在newnotebook.js编辑这行代码

var w = window.open(undefined, IPython._target);

并添加“_self”以便在同一个 window 中打开新的 url。

var w = window.open('', "_self");

现在我可以使用 WebBrowser.Navigated 和导航方法获取页面的 url。