0

我现在正在构建一个 Web 应用程序,它有几个文本字段,理想情况下我希望能够使用每个字段旁边的“复制”按钮来复制(单独)。现在我正在尝试在我的主文件中编写一个 Pyperclip 函数,然后将其作为onclick按钮的值传递,但是一旦页面加载,Pyperclip 函数就会执行并且我的剪贴板会在不按任何内容的情况下更新。例如:

@app.route('/converted.html', methods = ['GET', 'POST'])
def converted():
    pyperclip_Test = pyperclip.copy("apple")

    return render_template('converted.html', 
        pyperclip_Test = pyperclip_Test)

然后在我的模板文件中:

<a href="#" onClick = "{{ pyperclip_Test }}; return false">Test</a>
<div>Data that I want to copy</div>

我知道 pyperclip 函数没有复制那个 div - 我收回了我可以传递的原始数据 - 但问题仍然存在,即脚本在没有我按下按钮的情况下执行。

关于如何使它工作的任何想法?

4

1 回答 1

2

您不能在网页中使用 pyperclip ...您混淆了客户端和服务器端...您正在复制服务器端剪贴板上的文本,这对客户端(或其他任何人)没有任何作用

尝试类似以下(javascript)

<script>
function clip_text(a_string){
    var input = document.createElement('input')
    input.id="__copyText__";
    input.value = a_string; // OOPS! document.getElementById(divId).innerText;
    document.body.appendChild(input);
    input.select();
    document.execCommand("copy");
    var txt = input.value
    input.remove()
    console.log("OK COPIED: '"+txt+"'")
}
function clip_div(divId){
   return clip_text(document.getElementById(divId).innerText)
}
</script>

然后这样称呼它

<a href="#" onClick = "clip_div('copyme')">Test</a>
<div id="copyme">Data that I want to copy</div>
于 2018-02-23T18:42:27.637 回答