[Interest] Handle frames and web forms with QWebEngine

Koehne Kai Kai.Koehne at theqtcompany.com
Fri Nov 27 09:48:31 CET 2015



> -----Original Message-----
> From: NoRulez [mailto:norulez at me.com]
> Sent: Friday, November 27, 2015 9:35 AM
> 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
> 
> This is not my tree, it's a simple webpage/webform. But it seems that the new
> "webengine" can't handle simple tasks like this.

I think I already mentioned several approaches to do this.

> I don't think that the following statement is too complex:
> document.getElementsByTagName('input')

The statement itself is not complex. What it returns might be too complex for a simple transformation into a QVariant, though.

Regards

Kai

> Best regards
> 
> > Am 25.11.2015 um 13:08 schrieb Koehne Kai
> <Kai.Koehne at theqtcompany.com>:
> >
> >
> >
> >> -----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.cp
> > p.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-fa
> >>>> nc
> >>>> 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-ma
> >>>> rk
> >>>> 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