从短划线中的onclick触发javascript
我有一个Python Dash应用程序正在运行,有几个回调和一个漂亮的图形。接下来,我需要的是有一个按钮,用于将一些结果以excel格式复制到剪贴板(非常具体,是的)。我想我需要实现一个javascript函数,该函数由单击按钮触发,但我不知道如何让Python应用程序调用javascript。有人能帮我解决这个问题吗?:) 大概是这样的:从短划线中的onclick触发javascript,javascript,python-3.x,plotly-dash,Javascript,Python 3.x,Plotly Dash,我有一个Python Dash应用程序正在运行,有几个回调和一个漂亮的图形。接下来,我需要的是有一个按钮,用于将一些结果以excel格式复制到剪贴板(非常具体,是的)。我想我需要实现一个javascript函数,该函数由单击按钮触发,但我不知道如何让Python应用程序调用javascript。有人能帮我解决这个问题吗?:) 大概是这样的: function copy_to_cliboard() { var copyText = document.getElementById("text_i
function copy_to_cliboard() {
var copyText = document.getElementById("text_input");
copyText.select();
copyText.setSelectionRange(0, 99999);
document.execCommand("copy");
alert("Copied the text: " + copyText.value);
}
非常感谢 为此,您必须使用套接字,使用套接字服务器可以触发前端。推送通知也用于向前端发送消息,但在您的情况下,套接字是最好的解决方案。请参考以下答案。希望能有帮助
如果有人遇到同样的挑战,下面是我的解决方案
app.clientside_callback(
"""
function placeholder(n_clicks, data) {
window.data_to_copy = data.data;
var copyText = document.getElementById("text_input");
copyText.select();
copyText.setSelectionRange(0, 99999);
document.execCommand("copy");
}
// Overwrite what is being copied to the clipboard.
document.addEventListener('copy', function(e){
// e.clipboardData is initially empty, but we can set it to the
// data that we want copied onto the clipboard.
e.clipboardData.setData('text/plain', window.data_to_copy);
// This is necessary to prevent the current document selection from
// being written to the clipboard.
e.preventDefault();
});
""",
[Output("copy_output", "children")],
[Input("copy_button", "n_clicks")],
[State("excel_output", "data")]
)
这可能会有帮助:有关客户端回调的更多信息,请参阅此处: