В QT 4.6 с Webkit: как обрабатывать запросы всплывающих окон (WebView :: createWindow)? - PullRequest
2 голосов
/ 03 мая 2010

Я новичок в QT и пытаюсь создать тестовый браузер.То, что я пытаюсь сделать сейчас, - это обрабатывать всплывающие запросы на основе js.Прочитав документацию по QT, я узнал, что мне нужно повторно реализовать метод QWebView :: createWindow, чтобы сделать это.

Теперь я повторно реализовал этот метод, но, кажется, его не вызывают,Я пытаюсь щелкнуть ссылку, которая вызывает всплывающее окно.

Может ли кто-нибудь мне помочь?Нужно ли создавать подклассы классов WebView и WebPage?Если да, то как мне это сделать?Я довольно новичок в QT, я провел множество поисков и ничего не нашел.

Заранее всем спасибо за любые подсказки и советы!

Ответы [ 2 ]

4 голосов
/ 03 мая 2010

Вы не забыли установить следующие параметры?

view->settings()->setAttribute(QWebSettings::JavascriptEnabled, true);
view->settings()->setAttribute(QWebSettings::JavascriptCanOpenWindows, true);

И не забудьте вызвать метод родительского класса createWindow (). В документации есть примечание:

Примечание. Если метод createWindow () связанная страница переопределена, этот метод не вызывается, если только явно сделано в Переопределение.

0 голосов
/ 04 мая 2010

Не берите в голову мой второй вопрос (в области комментариев), вот что я сделал, чтобы захватить новый запрос окна (большое спасибо подсказке Дункана!):

page()->settings()->setAttribute(QWebSettings::JavascriptCanOpenWindows, true);

Это использовалось в процессе инициализации пользовательского класса WebView.

Надеюсь, это кому-нибудь пригодится. Спасибо!

...