Hi,<div><br></div><div>I am using QtWebkit in my product, and yesterday I got a strange problem.</div><div>I tyied to Inject objects into javascript environment in this way:</div><div><br></div><div>There are two QObjects I want to injcect, named "A" and "B", and A is the parent of B.</div>
<div>QObject *A = ...</div><div>QObject *B = ...</div><div>B->setParent(A);</div><div>A->setObjectName("A");</div><div>B->setObjectName("B");</div><div><div>QWebFrame *frame = ... // the target frame</div>
<div>connect(frame, SIGNAL(javaScriptWindowObjectCleared()),this, SLOT(Inject()));</div><div><br></div><div>And in Inject slot:</div><div><br></div><div>frame->addToJavaScriptWindowObject(A->objectName(), A);</div><div>
QString js("A.B.foo = 'bar';");</div><div>frame->evaluateJavaScript(js);</div><div><br></div><div>Then the strange thing happens, I can access A.B.foo successfully at first time, but if I do some other operations, for example,</div>
<div>invoke the web inspector or close another window in my app(which has no business with current window), then the A.B.foo is gone! But A.B is still there,</div><div> and all INVOKABLE methods and properties are still accessible.</div>
<div><br></div><div>I am not sure whether it is a bug, the Qt version is 4.7.3.</div><div><br></div><div><br></div>-- <br>Best Regards<br>- Kang Liu<br>
</div>