在 jupyter notebook 中复制到剪贴板

Copy to clipboard in jupyter notebook

我想在 jupyter notebok 中实现剪贴板复制。

jupyter notebook 远程 运行ning,因此我无法使用 pandas.to_clipboardpyperclip,我必须使用 javascript

这是我想出的:

def js_code_copy(content)
    return """
var body = document.getElementsByTagName('body')[0];
var tmp_textbox = document.createElement('input');
body.appendChild(tmp_textbox);
tmp_textbox.setAttribute('value', '{content}');
tmp_textbox.select();
document.execCommand('copy');
body.removeChild(tmp_textbox);
""".format(content=content.replace("'", '\'+"'"))

请注意,如果我在浏览器的控制台中 运行 代码会执行预期的操作。

但是,如果我 运行 在 jupyter 中使用:

from IPython.display import display, Javascript
content = "boom"
display(Javascript(js_code_copy("Copy me to clipboard")))

没有效果,

有什么想法吗?

您可以尝试在后台使用 selenium and phantomJS 来 运行 无头浏览器中的代码。

出于安全原因,如果该方法未因用户操作(例如单击按钮)而被调用,则您的浏览器会禁用 document.execCommand

由于您在页面上注入并 运行 Javascript,因此这不被视为用户操作。