[Qtwebengine] Handle frames and web forms with QWebEngine
NoRulez
norulez at me.com
Tue Feb 16 23:00:43 CET 2016
But how can i fire a javascript signal if an iframe content is changed? What I'm doing with the variable "var content"?
So what functions did I need to call? If I am the owner of the website I could maybe inject something like "<body onload=''>". I don't want to do a lot of JavaScript coding because I hate JavaScript and I'm a c++ coder. My problem is that I need to port a WebKit app to the webengine.
The only thing why I need it is because the Qt guys removed WebKit and replaced it with this ... stuff (which is much more complicated if someone doesn't code JavaScript at all)
Best Regards
> Am 16.02.2016 um 17:33 schrieb Allan Sandfeld Jensen <allan.jensen at theqtcompany.com>:
>
> Even without modifying the html site, you can run javascript on it, using the
> QWebEnginePage::runJavaScript API. Just be aware that it is asynchronous, so
> you get the results as a callback.
>
> We included an example of how to use qtwebchannel in Qt 5.6, check out the
> markdowneditor example. It basically boils down to this on the C++side:
> QWebChannel *channel = new QWebChannel(this);
> channel->registerObject(QStringLiteral("content"), &m_content);
> page->setWebChannel(channel);
>
> And including qwebchannel.js on the JavaScript side. And then using code like
> this to get to the "content" object:
> new QWebChannel(qt.webChannelTransport,
> function(channel) {
> var content = channel.objects.content;
> }
> }
>
>
> Using qtwebchannel on foreign content is harder, and until Qt 5.7 brings a
> security risk in that any objects you inject can be reached by the remote
> content too. The main difference to the markdowneditor example though is just
> that you need to inject qwebchannel.js using either runJavaScript on the new
> QWebEngineScript api.
>
> Best regards
>
>> On Tuesday 16 February 2016, NoRulez wrote:
>> Since it isn't documented very well.
>> Could you please give me a small example.
>>
>> Best regards
>>
>>> Am 16.02.2016 um 00:17 schrieb NoRulez <norulez at me.com>:
>>>
>>> But i doesn't have access to modify the html site, I have only an url.
>>>
>>> I don't know how to work with QWebChannel, since I'm not familiar with
>>> JavaScript and I doesn't find out which function I can use from the
>>> qwebchannel.js
>>>
>>> Could you please help me?
>>> Sorry but it was much easier with WebKit. :-(
>>>
>>> Best Regards
>>>
>>>>> Am 15.02.2016 um 22:10 schrieb Allan Sandfeld Jensen
>>>>> <allan.jensen at theqtcompany.com>:
>>>>>
>>>>> On Thursday 04 February 2016, NoRulez wrote:
>>>>> Hello,
>>>>>
>>>>> 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)
>>>>>
>>>>> Thanks in advance
>>>>
>>>> I would suggest handling web-forms it in JavaScript. To get a signal
>>>> from JavaScript, you should check out QtWebChannel, with that you can
>>>> install QObjects in DOM then call any function from an event listener.
>>>>
>>>> Best regards
>>>> `Allan
>>>
>>> _______________________________________________
>>> QtWebEngine mailing list
>>> QtWebEngine at qt-project.org
>>> http://lists.qt-project.org/mailman/listinfo/qtwebengine
>
>
> --
>
> The Qt Company
> Rudower Chausse 13, 12489 D-Berlin
>
> The Qt Company is a group company of Digia Plc,
> Valimotie 21, FI-00380 Helsinki Finland
More information about the QtWebEngine
mailing list