"""Communicate between Python and Javascript asynchronously usinginter-process messaging with the use of Javascript Bindings."""from cefpython3 import cefpython as cefg_htmlcode = """<!doctype html><html><head><style>body, html {font-family: Arial;font-size: 11pt;}</style><script>function print(msg) {document.getElementById("console").innerHTML += msg+"<br>";}function js_function(value) {print("Value sent from Python: <b>"+value+"</b>");py_function("I am a Javascript string #1", js_callback);}function js_callback(value, py_callback) {print("Value sent from Python: <b>"+value+"</b>");py_callback("I am a Javascript string #2");}</script></head><body><h1>Javascript Bindings</h1><div id=console></div></body></html>"""def main():cef.Initialize()browser = cef.CreateBrowserSync(url=cef.GetDataUrl(g_htmlcode),window_title="Javascript Bindings")browser.SetClientHandler(LoadHandler())bindings = cef.JavascriptBindings()bindings.SetFunction("py_function", py_function)bindings.SetFunction("py_callback", py_callback)browser.SetJavascriptBindings(bindings)cef.MessageLoop()del browsercef.Shutdown()def py_function(value, js_callback):print("Value sent from Javascript: "+value)js_callback.Call("I am a Python string #2", py_callback)def py_callback(value):print("Value sent from Javascript: "+value)class LoadHandler(object):def OnLoadEnd(self, browser, **_):browser.ExecuteFunction("js_function", "I am a Python string #1")if __name__ == '__main__':main()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。