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?
_______________________________________________
Qt4-preview-feedback mailing list
[email protected]
http://lists.trolltech.com/mailman/listinfo/qt4-preview-feedback