如何从Bokeh Server触发浏览器中任意JavaScript代码的执行? 创建隐藏按钮然后“触发”它是最简单的方法吗?
答案 0 :(得分:1)
来自Bryan Van de Ven @bryevdv 3月08日20:52
@Sklavit你可能想要等bokeh/bokeh#5941
来自说明:
API与用于注册属性更改触发的回调的现有
on_change
和js_on_change
API非常相似。
关于2017-03-09的问题,有几种方法可以从服务器触发JS代码:
将JS回调定义为
some_model.callback = CustomJS(code="alert('hi!')")
触发callback
的内容尚不清楚
将JS回调定义为
some_model.js_on_change = CustomJS(code="alert('hi!')")
js_on_change
仅适用于少数model
DataTable
中的代码注入
TableColumn(..., formatter=HTMLTemplateFormatter(template="<% alert('hi!') %>"))
我目前的解决方案 创建隐藏的持有者
callback_holder = PreText(text='', css_classes=['hidden'])
callback = CustomJS(args={}, code='alert(cb_obj.text);')
callback_holder.js_on_change('text', callback)
然后在申请的其他部分:
def update():
callback_holder.text = 'data for JS code'
curdoc().add_next_tick_callback(update)
答案 1 :(得分:0)
您可能想要使用templates
。可以在此处找到如何使用散景服务器应用程序模板的示例:
https://github.com/bokeh/bokeh/tree/master/examples/app/crossfilter