[webkit-gtk] GObject bindings ... how to add/remove DOM event listeners?

C Anthony Risinger anthony at xtfx.me
Sun Feb 5 01:43:42 PST 2012


On Sun, Feb 5, 2012 at 2:38 AM, C Anthony Risinger <anthony at xtfx.me> wrote:
>
> ****is it currently possible to use
> add_event_handler/remove_event_handler from Python?****
>
> the add/remove handlers are missing from all the EventTargets, but
> available on EventTargetIface, and everything i read suggests i'm
> simply using it incorrectly, esp. considering the change from signals
> was almost 1yr ago:
> https://lists.webkit.org/pipermail/webkit-gtk/2011-March/000450.html

per suggestion in IRC, here is the actual code in use:

http://paste.pocoo.org/show/546021/

-----------------------------------------------------
import gi
gi.require_version('WebKit', '3.0')
from gi.repository import WebKit, Gtk, GObject

init_string = r'''
<div id="testing">testing</div>
<div><button id="link">CLICK ME</button>
<a href="http://www.google.com">hooray!</a>
'''

class WK(object):
    def __init__(self):
        print '__init__'

        self.window = Gtk.Window()
        self.webview = WebKit.WebView()

        self.window.set_default_size(800, 600)
        self.window.connect('destroy', self.on_quit)

        self.window.add(self.webview)
        self.window.show_all()

        self.webview.load_string(init_string, 'text/html', 'utf-8', '#')
        self.webview.connect('document-load-finished', self.on_load)

    def on_load(self, *args, **kwds):
        print 'on_load'

        doc = self.webview.get_dom_document()
        link = doc.get_element_by_id('link')

        # old way ...
        #link.connect('click-event', ll, 'testtest')

        # DOESN'T WORK (non-existent) ... how to achieve?
        link.add_event_listener('click', self.on_click, True, self)

    def on_click(self, *args, **kwds):
        print 'on_click', args, kwds

    def on_quit(self, widget):
        Gtk.main_quit()

if __name__ == '__main__':
    testevents = WK()
    Gtk.main()
-----------------------------------------------------

thanks much for your time,

-- 

C Anthony


More information about the webkit-gtk mailing list