我希望能够将剪贴板中的图像粘贴到IPython中。
对Python不熟悉,但是之前在网络应用程序中解决了这个问题后,我花了很多时间在Firefox的检查员中探讨了使用JavaScript的解决方案。
我找到window.IPython
并使用反复试验来猜测哪些函数可以避免过多的DOM黑客攻击。我试着寻找JS API的文档,但找不到任何东西。
是否存在IPython / Jupyter JS API的文档?
代码FYI。选秀但对我来说足够好。在你自己的笔记本中使用你自己的危险:
%%javascript
// remove the paste listener if it already exists
if (window.paste_listener)
{
window.removeEventListener('paste',window.paste_listener);
}
// (re)declare the paste listener
window.paste_listener = function(event)
{
if (event instanceof ClipboardEvent)
{
var file = event.clipboardData.items[0].getAsFile();
if (file && file.type.substr(0,6) == "image/")
{
var reader = new FileReader();
reader.onloadend = function() {
var cell = IPython.notebook.insert_cell_below('code');
cell.set_text("%%html\n<img src='" + reader.result + "' />");
cell.execute();
};
reader.readAsDataURL(file);
}
}
}
// and add it
window.addEventListener('paste', window.paste_listener);