[Interest] Handle frames and web forms with QWebEngine

NoRulez norulez at me.com
Fri Nov 27 09:34:40 CET 2015


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 don't think that the following statement is too complex: document.getElementsByTagName('input')

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.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