में किसी तत्व पर एक GWT ईवेंट को हुक करना मैं एक जीडब्ल्यूटी ऐप लिख रहा हूं जिसमें एक आईफ्रेम में बाहरी दस्तावेज़ के साथ बातचीत करना शामिल है। अवधारणा के सबूत के रूप में, मैं एक बटन पर एक क्लिक हैंडलर संलग्न करने की कोशिश कर रहा हूं।एक बाहरी आईफ्रेम
जावास्क्रिप्ट में निम्नलिखित काम करता है
var iframe = document.getElementById("rawJSIFrame");
var doc = iframe.contentDocument;
var body = doc.body;
var button = doc.getElementsByTagName("input").namedItem("submit");
button.onclick = function() {
alert("Clicked!");
};
GWT में बराबर करने के लिए कोशिश कर रहा है, मैंने किया था निम्नलिखित:
public class ElementWrapper extends Widget implements HasClickHandlers {
public ElementWrapper(Element theElement) {
setElement(theElement);
}
public HandlerRegistration addClickHandler(ClickHandler handler) {
return addDomHandler(handler, ClickEvent.getType());
}
}
:
public void addClickHandlerToSubmitButton(String buttonElementName, ClickHandler clickHandler) {
IFrameElement iframe = IFrameElement.as(frame.getElement());
Document frameDocument = getIFrameDocument(iframe);
if (frameDocument != null) {
Element buttonElement = finder(frameDocument).tag("input").name(buttonElementName).findOne();
ElementWrapper wrapper = new ElementWrapper(buttonElement);
HandlerRegistration handlerRegistration = wrapper.addClickHandler(clickHandler);
}
}
private native Document getIFrameDocument(IFrameElement iframe)/*-{
return iframe.contentDocument;
}-*/;
निम्नलिखित ElementWrapper वर्ग है बटन खोजने के लिए कोड ठीक काम करता है लेकिन वास्तविक क्लिक इवेंट हैंडलर नहीं आ रहा है। क्या किसी के पास पहले एक समान समस्या थी, और आपने इसे कैसे हल किया?
अग्रिम धन्यवाद,
टिन
धन्यवाद! मुझे पता था कि एक क्लीनर तरीका होना था :) – triggerNZ