[Interest] Handle frames and web forms with QWebEngine

Koehne Kai Kai.Koehne at theqtcompany.com
Wed Nov 25 13:08:29 CET 2015



> -----Original Message-----
> From: NoRulez [mailto:norulez at me.com]
> Sent: Tuesday, November 24, 2015 2:37 PM
> To: Koehne Kai <Kai.Koehne at theqtcompany.com>
> Cc: Qt Project MailingList <interest at qt-project.org>
> Subject: Re: [Interest] Handle frames and web forms with QWebEngine
> 
> No one?
> 
> Isn't it supported to return simple objects?

The code that does the transformation can be found in web_contents_adapter.cpp, function fromJSValue():

http://code.woboq.org/qt5/qtwebengine/src/core/web_contents_adapter.cpp.html

Not sure how the JS representation of your tree is.

A possible workaround might be to serialize the data structures, and return a JSON string (e.g. by using JSON.stringify()).

Regards

Kai

> Best Regards
> 
> 
> > Am 19.11.2015 um 17:29 schrieb NoRulez <norulez at me.com>:
> >
> > I tried to use m_pWebEngineView->page()->runJavaScript() after the site is
> loaded, but it returns QVariant(QVariantMap, QMap()) for most of the time.
> >
> > It seems that it can handle only simple queries like "document.title" but not for
> example "window.frames['MyFrame].document.forms[0].elements".
> > With which I expect a list of maps or similar to get the form elements.
> >
> > Best Regards
> >
> >> Am 18.11.2015 um 16:40 schrieb Koehne Kai
> <Kai.Koehne at theqtcompany.com>:
> >>
> >>
> >>
> >>> -----Original Message-----
> >>> From: NoRulez [mailto:norulez at me.com]
> >>> Sent: Wednesday, November 18, 2015 12:20 PM
> >>> To: Koehne Kai <Kai.Koehne at theqtcompany.com>
> >>> Cc: Qt Project MailingList <interest at qt-project.org>
> >>> Subject: Re: [Interest] Handle frames and web forms with QWebEngine
> >>>
> >>> Is there an example for such approach?
> >>
> >> Probably not for your specific request, but there's the 'fancybrowser'
> example that shows how to inject JavaScript:
> >>
> >> https://doc-snapshots.qt.io/qt5-5.6/qtwebengine-webenginewidgets-fanc
> >> ybrowser-example.html
> >>
> >> We recently also just added a 'markdowneditor' example demonstrating the
> use of QWebChannel:
> >>
> >> https://doc-snapshots.qt.io/qt5-5.6/qtwebengine-webenginewidgets-mark
> >> downeditor-example.html
> >>
> >> Regards
> >>
> >> Kai
> >>
> >>
> >>>>> Am 18.11.2015 um 10:12 schrieb Koehne Kai
> >>>> <Kai.Koehne at theqtcompany.com>:
> >>>>
> >>>>
> >>>>
> >>>>> -----Original Message-----
> >>>>> From: Interest [mailto:interest-bounces at qt-project.org] On Behalf
> >>>>> Of NoRulez
> >>>>>
> >>>>> Hi,
> >>>>>
> >>>>> What is the preferred way to handle web forms (iterate over it
> >>>>> like QWebCollection does in QWebKit), search for frames by name
> >>>>> and get notified when a frame is created? (Was a signal in
> >>>>> QWebKit)
> >>>>
> >>>> The general approach is to load/inject JavaScript into the page
> >>>> that takes care
> >>> of this, and communicates with the C++ world either by return value,
> >>> or QWebChannel.
> >>>>
> >>>> Hope this helps,
> >>>>
> >>>> Kai
> > _______________________________________________
> > Interest mailing list
> > Interest at qt-project.org
> > http://lists.qt-project.org/mailman/listinfo/interest



More information about the Interest mailing list