复制到jupyter笔记本中的剪贴板

Uri*_*ren 5 javascript python clipboard jupyter-notebook

我想在一个jupyter notebok中实现一个剪贴板副本.

jupyter笔记本远程运行,因此我无法使用pandas.to_clipboard或pyperclip我必须使用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("'", '\\'+"'"))
Run Code Online (Sandbox Code Playgroud)

请注意,如果我在浏览器的控制台中运行代码,代码会执行它应该执行的操作.

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

from IPython.display import display, Javascript
content = "boom"
display(Javascript(js_code_copy("Copy me to clipboard")))
Run Code Online (Sandbox Code Playgroud)

什么都行不通,

有任何想法吗 ?

Ben*_*ick 4

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

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