Я создаю веб-приложение, которое должно предоставлять коду Python обратный вызов всякий раз, когда пользователь щелкает правой кнопкой мыши в веб-приложении.
Я пытался сделать это с помощью dcc.Store и записать в сохранить в событии контекстного меню. Все идет нормально. Я поместил этот специальный код, который перехватывает событие контекстного меню в assets/custom.js, однако, когда я пытаюсь получить хранилище с помощью var store = document.getElementById("contextmenu_data");, он возвращает значение null, поэтому никогда вообще-то пишу что-то в магазин. Что может быть не так?
Вот MRE для кода Python и JS:
Python
import dash
from dash import dcc, html
from dash.dependencies import Input, Output
import threading
app = dash.Dash(__name__)
app.layout = html.Div([
html.Div(id="output"),
dcc.Store(id='contextmenu_data'),
])
@app.callback(Output("output", 'children'),
Input("contextmenu_data", 'data'),
)
def right_click_action(data):
print(f"right_click_action called with data: {data}")
if data:
return f"coordinates are {data}"
return "no rightclicks have happened"
def run_dash():
app.run_server(debug=False)
if __name__ == '__main__':
server = threading.Thread(target=run_dash, daemon=True)
server.start()
js
window.onload = function() {
document.addEventListener('contextmenu', function(event) {
event.preventDefault();
var store = document.getElementById("contextmenu_data");
console.log(store);
if (store) {
var data = {x: event.clientX, y: event.clientY};
store.setAttribute('data', JSON.stringify(data));
store.dispatchEvent(new CustomEvent('data'));
}
});
};
Подробнее здесь: https://stackoverflow.com/questions/793 ... r-callback
Пользовательский JS приложения Dash не может найти dcc.Store для обратного вызова ⇐ Javascript
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Остановить Plotly Dash.dcc.Store(), запускающий обновление при загрузке страницы.
Anonymous » » в форуме Python - 0 Ответы
- 15 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Динамически обновляйте «initial_visible_month» из dcc.DatePickerRange. Python Plotly Dash
Anonymous » » в форуме Python - 0 Ответы
- 23 Просмотры
-
Последнее сообщение Anonymous
-