"""This example demonstrates how to expose Python functions to the Javascript domain.""" import webview from webview.dom import DOMEventHandler window = None def click_handler(e): print(e) def input_handler(e): print(e['target']['value']) def remove_handlers(scroll_event, click_event, input_event): scroll_event -= scroll_handler click_event -= click_handler input_event -= input_handler def scroll_handler(e): scroll_top = window.dom.window.node['scrollY'] print(f'Scroll position {scroll_top}') def link_handler(e): print(f'Link target is {e["target"]["href"]}') def bind(window): window.dom.document.events.scroll += DOMEventHandler(scroll_handler, debounce=100) button = window.dom.get_element('#button') button.events.click += click_handler input = window.dom.get_element('#input') input.events.input += input_handler remove_events = window.dom.get_element('#remove') remove_events.on( 'click', lambda e: remove_handlers( window.dom.document.events.scroll, button.events.click, input.events.input ), ) link = window.dom.get_element('#link') link.events.click += DOMEventHandler(link_handler, prevent_default=True) if __name__ == '__main__': window = webview.create_window( 'DOM Event Example', html="""
Click me
""", ) webview.start(bind, window)