<div dir="ltr"><div><p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(0,180,0)">'''</p><p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(0,180,0)">I know this is meant for pyqt but I've had little luck this that board.</p><p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(0,180,0)"><br></p>
<p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(0,180,0)">The short answer is yes, but it's a total hack...and I'm wondering if anybody has a more elegant solution.  </p>
<p style="margin:0px;font-size:11px;font-family:Monaco;min-height:15px"><br></p>
<p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(0,180,0)">Specifically I would like to be able to fire a defer from the <span style="text-decoration:underline">javascript</span> instead of having to call alert.</p><p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(0,180,0)"><br></p><p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(0,180,0)">Below is an example of how I currently gain access...not necessarily a working version.</p>
<p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(0,180,0)">'''<span style="color:rgb(0,0,0)">  </span></p>
<p style="margin:0px;font-size:11px;font-family:Monaco;min-height:15px"><br></p>
<p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(0,180,0)"><span style="color:rgb(0,0,0)">url = </span>'<a href="http://www.google.com">http://www.google.com</a>'</p>
<p style="margin:0px;font-size:11px;font-family:Monaco;min-height:15px"><br></p>
<p style="margin:0px;font-size:11px;font-family:Monaco">mo = <span style="color:rgb(0,180,0)">"""</span></p>
<p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(0,180,0)">    <span style="text-decoration:underline">var</span> observer = new MutationObserver(function(mutations) {</p>
<p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(0,180,0)">        for (<span style="text-decoration:underline">var</span> x = 0; x < mutations.length; x++) {</p>
<p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(0,180,0)">            if (mutations[x].addedNodes.length > 0) {</p>
<p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(0,180,0)">                alert('add nodes')                </p>
<p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(0,180,0)">            }</p>
<p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(0,180,0)">        }</p>
<p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(0,180,0)">    });</p>
<p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(0,180,0)">    <span style="text-decoration:underline">var</span> <span style="text-decoration:underline">config</span> = { attributes: true, childList: true, characterData: false }</p>
<p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(0,180,0)">    <span style="text-decoration:underline">var</span> <span style="text-decoration:underline">nti</span> = document.querySelector('document.body')</p>
<p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(0,180,0)">    observer.observe(<span style="text-decoration:underline">nti</span>, <span style="text-decoration:underline">config</span>);            </p>
<p style="margin:0px;font-size:11px;font-family:Monaco;color:rgb(0,180,0)">"""</p>
<p style="margin:0px;font-size:11px;font-family:Monaco;min-height:15px"><br></p>
<p style="margin:0px;font-size:11px;font-family:Monaco">page = QWebPage()</p>
<p style="margin:0px;font-size:11px;font-family:Monaco"><span style="color:rgb(4,51,255)">def</span> alarmAction(qframe, msg):</p>
<p style="margin:0px;font-size:11px;font-family:Monaco">    <span style="color:rgb(4,51,255)">print</span> <span style="color:rgb(0,180,0)">'deferred action'</span>, qframe, msg</p>
<p style="margin:0px;font-size:11px;font-family:Monaco"><span style="color:rgb(4,51,255)">def</span> mutationHook():</p>
<p style="margin:0px;font-size:11px;font-family:Monaco">    d = defer.Deferred()</p><p style="margin:0px;font-size:11px;font-family:Monaco">    d.addCallback(alarmAction)</p>
<p style="margin:0px;font-size:11px;font-family:Monaco">    page.javaScriptAlert = d.callback</p>
<p style="margin:0px;font-size:11px;font-family:Monaco">    page.mainFrame().documentElement().evaluateJavaScript(mo)</p>
<p style="margin:0px;font-size:11px;font-family:Monaco;min-height:15px">    </p>
<p style="margin:0px;font-size:11px;font-family:Monaco">page.loadFinished(mutationHook)</p>
<p style="margin:0px;font-size:11px;font-family:Monaco">page.mainFrame().setUrl(url)</p></div><div><br></div></div>