Russian Qt Forum

Qt => Qt Script, QtWebKit => Тема начата: nata267 от Июль 26, 2011, 10:45



Название: В WebView не работает javascript:window.open() и не открываются ссылки на файлы
Отправлено: nata267 от Июль 26, 2011, 10:45
Почему то WebView не обрабатывает эти события. Поставила settings()->setAttribute(QWebSettings::JavascriptCanOpenWindows, true);
Не помогло((( Что нужно делать чтобы правильно обрабатывало эти события???


Название: Re: В WebKit не работает javascript:window.open() и не открываются ссылки на файлы
Отправлено: serg_hd от Июль 26, 2011, 11:58
а
Код
C++ (Qt)
page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);
 
на месте?


Название: Re: В WebKit не работает javascript:window.open() и не открываются ссылки на файлы
Отправлено: nata267 от Июль 26, 2011, 12:19
а
Код
C++ (Qt)
page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);
 
на месте?

если сделать так то ссылки перестанут обрабатываться по-умолчанию, и для них нужно писать обработчики вручную,
к тому же это здесь не причем, так как тут не ссылки, а функция javascript:window.open()  по кнопке.


Название: Re: В WebKit не работает javascript:window.open() и не открываются ссылки на файлы
Отправлено: nata267 от Июль 26, 2011, 12:37
надо както написать реализацию виртуальной функции virtual QWebView * createWindow ( QWebPage::WebWindowType type ). Потому что именно она вызывается когда происходят эти события, но как её реализовать. Создавать новые окна с броузером??


Название: Re: В WebView не работает javascript:window.open() и не открываются ссылки на файлы
Отправлено: _OLEGator_ от Июль 26, 2011, 15:37
можно окна создавать, можно вкладки, браузеров много уже, реакция программы на клики можно оттуда брать.
К тому же есть параметр QWebPage::WebWindowType


Название: Re: В WebView не работает javascript:window.open() и не открываются ссылки на файлы
Отправлено: nata267 от Июль 27, 2011, 13:10
такая тема уже рассматривалась здесь http://www.prog.org.ru/topic_11941_0.html и осталась нерешенной. наверно это баг


Название: Re: В WebView не работает javascript:window.open() и не открываются ссылки на файлы
Отправлено: nata267 от Июль 28, 2011, 11:13
может в новых версиях qt это уже исправили??


Название: Re: В WebView не работает javascript:window.open() и не открываются ссылки на файлы
Отправлено: Denjs от Июль 28, 2011, 13:31
собственно скажите мне - почему вы хотите от компоннента разработчика - функциональности полновесного браузера?!
меня вот наоборот все совершенно устраивает - и то что я могу все клики руками обрабатывать, то что я контроллирую появление новых виджетов и прочее. А то что у меня jQuery в QWebView работает - так это вообще доводит мое восхищение QWEbView до незримых высот. Чего рпавда не хватает - возможности получить "исходник выделенного фрагмента" как в FF (т.е. этого нет Qt-шном враппере, хотя в самих компонентах оно, судя по ряду источников, есть...).

решение в стиле
Цитировать
надо както написать реализацию виртуальной функции virtual QWebView * createWindow ( QWebPage::WebWindowType type ).
меня лично устраивает на 100%.
а что вам не нравится? как уже сказали - на открытие нового окна - может быть _весьма_ разная реакция. (новая закладка, новое окно, закладка в фоновом режиме, и прочее и тому подобное). вы пробовали идти этим путем?


Название: Re: В WebView не работает javascript:window.open() и не открываются ссылки на файлы
Отправлено: nata267 от Июль 29, 2011, 10:40
собственно скажите мне - почему вы хотите от компоннента разработчика - функциональности полновесного браузера?!
меня вот наоборот все совершенно устраивает - и то что я могу все клики руками обрабатывать, то что я контроллирую появление новых виджетов и прочее. А то что у меня jQuery в QWebView работает - так это вообще доводит мое восхищение QWEbView до незримых высот. Чего рпавда не хватает - возможности получить "исходник выделенного фрагмента" как в FF (т.е. этого нет Qt-шном враппере, хотя в самих компонентах оно, судя по ряду источников, есть...).

решение в стиле
Цитировать
надо както написать реализацию виртуальной функции virtual QWebView * createWindow ( QWebPage::WebWindowType type ).
меня лично устраивает на 100%.
а что вам не нравится? как уже сказали - на открытие нового окна - может быть _весьма_ разная реакция. (новая закладка, новое окно, закладка в фоновом режиме, и прочее и тому подобное). вы пробовали идти этим путем?

пробовала, но безрезультатно(( много вопросов и нет ответов, так что вышла из положения: заменила всплывающие окна скрытыми div' ами с абсолютным позиционированием