如何使用对话框获取短划线文本



我想通过在javascript中使用类似破折号的promp函数中的对话框来询问绘图名称,但当我使用{html.Script("prompt('text');", type='text/javascript')时,我没有任何回报。

我不想使用文本输入或文本区域。

谢谢你的帮助。

达世币文档在html.Script:上显示了以下内容

注意:为了完整起见,包含了它,但不能通过将其提供给元素来执行JavaScript代码。为此,请改用客户端回调。

https://dash.plotly.com/dash-html-components/script

正如文档中所说,一种选择是使用客户端回调。

展示想法的最小示例:

app = dash.Dash(__name__)
app.layout = html.Div(
[
html.Div(id="content"),
html.Button(id="button", children="Show name of plot prompt"),
]
)

app.clientside_callback(
"""
function(n_clicks) {
if (n_clicks) {
nameOfPlot = prompt('name of plot')
return nameOfPlot
}
return "Name of plot placeholder"
}
""",
Output("content", "children"),
Input("button", "n_clicks"),
)

Button单击是此回调的输入。如果没有单击任何内容,我将返回一个占位符文本,该文本设置id为content的div的children属性。

如果点击了按钮,我们可以调用prompt并对其进行处理。

使用这种方法,回调需要一个输入和一个输出。您也可以将Javascript代码放在根应用程序目录的assets中的.js文件中。有关客户端回调的更多信息,请参阅此处的文档。

另一种方法是在assets文件夹中有一个.js文件,并将提示代码放在那里。您可能还需要设置一些事件侦听器来等待页面加载和/或侦听按钮单击事件或其他事件,以便在适当的时候触发提示。

最新更新