Thank you for this clarification and clear example. I'm very impressed so far with the flexibility QML provides in terms of communication between C++ > QML > JavaScript Context.
On Fri, May 7, 2010 at 6:52 AM, <[email protected]> wrote: > Hi, > > Yes the documentation is out of date. The fact that the property is marked > as read-only is a qdoc bug. > > I’ve updated the docs. As it will take a while to make it through our CI > system, I’ve included the change here. > > /*! > \qmlproperty list<object> WebView::javaScriptWindowObjects > > A list of QML objects to expose to the web page. > > Each object will be added as a property of the web frame's window > object. The > property name is controlled by the value of \c WebView.windowObjectName > > attached property. > > Exposing QML objects to a web page allows JavaScript executing in the > web > page itself to communicate with QML, by reading and writing properties > and > by calling methods of the exposed QML objects. > > This example shows how to call into a QML method using a window object. > > \qml > WebView { > javaScriptWindowObjects: QtObject { > WebView.windowObjectName: "qml" > > function qmlCall() { > console.log("This call is in QML!"); > } > } > > html: "<script>console.log(\"This is in WebKit!\"); > window.qml.qmlCall();</script>" > } > \endqml > > The output of the example will be: > \code > This is in WebKit! > This call is in QML! > \endcode > > If Javascript is not enabled for the page, then this property does > nothing. > */ > > As an aside, there is also a bug that prevents calling methods declared in > QML (like that in the example), but there is also a fix for that working > through our system. For the time being, you can communicate using property > values or methods defined in C++. > > Cheers, > > Aaron > > > On 6/05/10 11:43 PM, "ext Jack Wootton" <[email protected]> wrote: > > It seems the wording of the documentation has been copied from the > documentation for QWebFrame::addToJavaScriptWindowObject in Qt 4.6: > > http://doc.qt.nokia.com/4.6/qwebframe.html#addToJavaScriptWindowObject > > Is the reason for the confusing documentation? > > Cheers, > Jack > > On Thu, May 6, 2010 at 2:37 PM, Jack Wootton <[email protected]> > wrote: > > Hello, > > I hope someone can provide clarification on the documentation for QML > WebView. > > Reading the documentation for Qt 4.7 QML WebView, specifically the property > javaScriptWindowObjects: > > > http://doc.qt.nokia.com/4.7-snapshot/qml-webview.html#javaScriptWindowObjects-prop > > Firstly the documentation states: "This property is a list of object that > are available from within the webview's JavaScript context.". So this > returns a list of all objects available in the JavaScript context for the > document the WebView is currently displaying? I expect this would include > objects such as "document" and "window"? > > Secondly the documentation states: "The *object* will be inserted as a > child of the frame's window object, under the name given by the attached > property WebView.windowObjectName.". This seems at odss with a read-only > property? It seems to suggest that C++ objects can be made available in the > JavaScipt context of the document currently being displayed in the WebView? > > Thirdly the documentation states: "Properties of the object will be exposed > as JavaScript properties and slots as JavaScript methods.". Again, I do not > understand how C++ objects can be made inserted into a JavaScript context > using a read-only property of WebView. > > Lastly, an example is given: > > WebView { > > > > javaScriptWindowObjects: Object { > WebView.windowObjectName: "coordinates" > } > } > > In this example, what is "Object"? A C++ object? A JavaScript object? > > -- Regards Jack
_______________________________________________ Qt4-preview-feedback mailing list [email protected] http://lists.trolltech.com/mailman/listinfo/qt4-preview-feedback
