我正在将WebKitGTK +项目从C ++转换为Python(使用PyGI)。每当<input>页面上的元素获得或失去焦点时,我都需要检测。在C ++项目中,我使用以下代码(基于此示例)进行了此操作:WebKitDOMDocument* document = webkit_web_view_get_dom_document(view);WebKitDOMNodeList* nodes = webkit_dom_document_get_elements_by_tag_name(document, "*");int len = webkit_dom_node_list_get_length(nodes);for(int i = 0; i < len; i++) { WebKitDOMNode* node = webkit_dom_node_list_item(nodes, i); if(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(node)) { webkit_dom_event_target_add_event_listener(WEBKIT_DOM_EVENT_TARGET(node), "focus", G_CALLBACK(inputFocus), false); webkit_dom_event_target_add_event_listener(WEBKIT_DOM_EVENT_TARGET(node), "blur", G_CALLBACK(inputBlur), false); }}我试图在Python中做同样的事情,并想出了:document = view.get_dom_document()nodes = document.get_elements_by_tag_name('*')for i in range(nodes.get_length()): node = nodes.item(i) if isinstance(node, WebKit.DOMHTMLInputElement): node.add_event_listener('focus', inputFocus, False)问题是,DOMHTMLInputElement没有add_event_listener方法。基于C绑定,它应该成为其中的一部分DOMEventTarget(其DOMHTMLInputElement延伸),但它缺少一起remove_event_listener,但dispatch_event不知何故使得它这可能是由于,这个WebKit的错误; 我不确定有什么办法可以在Python中做到这一点吗?它不必使用我在C ++中使用的相同方案,我只需要某种方法来注册一个回调,该回调每次在页面上的某些元素上的焦点更改时都将调用
添加回答
举报
0/150
提交
取消