That was pseudo code, I've been using qt5reactor to happy results. All the same good to know on deferreds working in non-twisted code...
My challenge is having only 2 hooks into the DOM - javaScriptAlert and javaScriptConfirm that ultimately with QtWebEngine aren't available. thank for the feedback. On Wed, May 6, 2015 at 3:35 PM, Glyph <gl...@twistedmatrix.com> wrote: > > On May 6, 2015, at 11:04 AM, Kevin Mcintyre <kebi...@gmail.com> wrote: > > ''' > I know this is meant for pyqt but I've had little luck this that board. > > The short answer is yes, but it's a total hack...and I'm wondering if > anybody has a more elegant solution. > > Specifically I would like to be able to fire a defer from the javascript > instead of having to call alert. > > Below is an example of how I currently gain access...not necessarily a > working version. > ''' > > > I don't see any import of qt4reactor or Twisted (other than the implied > import of Deferred) in this code. Firing a Deferred in this way should be > totally fine though; you don't actually need the reactor for Deferreds to > work (it's just important that if it's going to interact with any *other* > Twisted > code it needs to run on the main thread). > > Sorry I don't have a better suggestion, but I don't see much wrong with > what you're doing here :). > > -g > > url = 'http://www.google.com' > > mo = """ > var observer = new MutationObserver(function(mutations) { > for (var x = 0; x < mutations.length; x++) { > if (mutations[x].addedNodes.length > 0) { > alert('add nodes') > } > } > }); > var config = { attributes: true, childList: true, characterData: > false } > var nti = document.querySelector('document.body') > observer.observe(nti, config); > """ > > page = QWebPage() > def alarmAction(qframe, msg): > print 'deferred action', qframe, msg > def mutationHook(): > d = defer.Deferred() > d.addCallback(alarmAction) > page.javaScriptAlert = d.callback > page.mainFrame().documentElement().evaluateJavaScript(mo) > > > page.loadFinished(mutationHook) > page.mainFrame().setUrl(url) > > _______________________________________________ > Twisted-Python mailing list > Twisted-Python@twistedmatrix.com > http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python > > > > _______________________________________________ > Twisted-Python mailing list > Twisted-Python@twistedmatrix.com > http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python > >
_______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python