c# - mshtml how to hook into document's readystatechange event -
i'm converting ie
window's handle mshtml.htmldocumentclass
using way described here.
there couple of weird things happening here.
when hook
onreadystatechange
event frame document (getframe
usingdocument.getelementbyid
, hook frameonreadystatechange
), event gets fired once.problem #1 disappears when detach event handler , reattach same method.
the main problem , after doing web document freezes, textboxes don't receive focus , buttons can clicked appear read buttons text type controls become readonly, after digging through problem little , found behaviour appears hook frame document's
onreadystatechange
event. detaching event brings page normal behaviour.
here's code i'm using.
this.guidedocument = this.gethtmldocumentbywindowhandle(handle) mshtml.htmldocumentclass; var frame = (this.guidedocument.frames.item(0) mshtml.ihtmlwindow2).frames.item(1) mshtml.ihtmlwindow2; var framedocument = frame.document mshtml.htmldocumentclass; framedocument.htmldocumentevents2_event_onreadystatechange += framedocument_htmldocumentevents2_event_onreadystatechange; void framedocument_htmldocumentevents2_event_onreadystatechange(ihtmleventobj pevtobj) { framedocument.htmldocumentevents2_event_onreadystatechange -= framedocument_htmldocumentevents2_event_onreadystatechange; framedocument.htmldocumentevents2_event_onreadystatechange += framedocument_htmldocumentevents2_event_onreadystatechange; this.disablebutton("btnclose", string.empty, framedocument); }
i'm not sure what's missing here, see wrong here, or alternate approach. web page composed of many framesets
, frames
. insights gr8 help.
i somehow feel, requires base.onreadystatechange
thing, don't know if there 1 available. or other way let original event called etc..
thanks,
Comments
Post a Comment