Russian Qt Forum

Qt => Работа с сетью => Тема начата: PinkPanther от Октябрь 21, 2013, 04:12



Название: QWebView -> дочерние окна, открываемые JavaScript
Отправлено: PinkPanther от Октябрь 21, 2013, 04:12
В моей программе есть браузер (QWebView), иногда в него приходится загружать страницы, которые используют JavaScript, в частности, при нажатии на некоторые ссылки в обычном браузере появляются окошки для ввода текста, или открываются дочерние окна браузера. Вот пример кода со страницы:

<a title="Ввести ключ" href="javascript:wo('keyID017319')"><img src="/images/enter.jpg"></img></a>

Мне только что потребовалась эта опция, пока особенно не разбирался, но при беглом взгляде QWebView не хочет открывать окна при клике на такие ссылки, то есть в результате ничего не происходит. Клик правой кнопкой по ссылке вызывает контекстное меню, в нем есть Open Window и Open in New Window, которые ничего не делают.

Подскажите пожалуйста, как заставить QWebView использовать JavaScript в контексте использования дополнительных окон?


Название: Re: QWebView -> дочерние окна, открываемые JavaScript
Отправлено: Dexel от Январь 17, 2014, 01:03
Инспектор JS в WebView включи:
Код:
ui->webView->page()->settings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, true);
и посмотри какая ошибка. Правой мышой по окну QWebView и Inspect.


Название: Re: QWebView -> дочерние окна, открываемые JavaScript
Отправлено: PinkPanther от Январь 17, 2014, 01:06
Инспектор JS в WebView включи:
Код:
ui->webView->page()->settings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, true);
и посмотри какая ошибка. Правой мышой по окну QWebView и Inspect.

Спасибо, попробую.


Название: Re: QWebView -> дочерние окна, открываемые JavaScript
Отправлено: 8Observer8 от Апрель 08, 2014, 21:07
Инспектор JS в WebView включи:
Код:
ui->webView->page()->settings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, true);
и посмотри какая ошибка. Правой мышой по окну QWebView и Inspect.

Для интереса сделал, как Вы написали. В результате получаю ошибки. Просто кинул WebView на форму:

(http://i7.pixs.ru/storage/1/7/3/163png_5551263_11607173.png)


Название: Re: QWebView -> дочерние окна, открываемые JavaScript
Отправлено: Old от Апрель 08, 2014, 21:13
А модуль webkit в проект не подключили?
QT += webkit


Название: Re: QWebView -> дочерние окна, открываемые JavaScript
Отправлено: 8Observer8 от Апрель 08, 2014, 21:17
Попробовал подключить, всё равно не работает.


Название: Re: QWebView -> дочерние окна, открываемые JavaScript
Отправлено: Old от Апрель 08, 2014, 21:19
Попробовал подключить, всё равно не работает.
А после этого qmake запускали?


Название: Re: QWebView -> дочерние окна, открываемые JavaScript
Отправлено: 8Observer8 от Апрель 08, 2014, 21:34
Я через Qt Creator зелёную кнопочку нажимаю :)


Название: Re: QWebView -> дочерние окна, открываемые JavaScript
Отправлено: Old от Апрель 08, 2014, 21:35
Я через Qt Creator зелёную кнопочку нажимаю :)
Попробуйте зайти: Сборка -> Запустить qmake


Название: Re: QWebView -> дочерние окна, открываемые JavaScript
Отправлено: 8Observer8 от Апрель 08, 2014, 21:45
Да, QMake отрабатывает. А вот Run - нет. Те же ошибки, что и выше.


Название: Re: QWebView -> дочерние окна, открываемые JavaScript
Отправлено: Old от Апрель 08, 2014, 21:49
А так?
QT      += webkitwidgets


Название: Re: QWebView -> дочерние окна, открываемые JavaScript
Отправлено: 8Observer8 от Апрель 08, 2014, 22:26
Да, так работает :) Спасибо огромное!

А почему? Ведь написано, что нужно так: QT += webkit Здесь: http://qt-project.org/doc/qt-5/qtwebkitwidgets-index.html

А то что у меня в окно "Application Output" выводится:
Цитировать
LEAK: 1 Range
LEAK: 169 CachedResource
LEAK: 1094 WebCoreNode
Это нормально?


Название: Re: QWebView -> дочерние окна, открываемые JavaScript
Отправлено: 8Observer8 от Апрель 09, 2014, 07:44
Эти утечки возникают только в момент закрытия приложения, поэтому на них можно забить :)