Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct
QWebEngine open links issue
-
Hi! I have noticed that
QWebEngine
doesn't open some links. For example, when I navigate to https://www.qt.io/, and press on these links, it do nothing.But when I open context menu, it displays the default menus, and there is option to follow link, when I clicked on it, the page has been opened successfully.
Code:
QWebEngineView *browserTest = new QWebEngineView(this); browserTest ->settings()->setAttribute(QWebEngineSettings::PluginsEnabled, true); browserTest ->settings()->setAttribute(QWebEngineSettings::FullScreenSupportEnabled, true); browserTest ->settings()->setAttribute(QWebEngineSettings::AllowRunningInsecureContent, true); browserTest ->settings()->setAttribute(QWebEngineSettings::SpatialNavigationEnabled, true); browserTest ->settings()->setAttribute(QWebEngineSettings::JavascriptEnabled, true); browserTest ->settings()->setAttribute(QWebEngineSettings::JavascriptCanOpenWindows, true);
So how to open these links by mouse clicks? Why it is not the default behavior to open links in the
QWebEngine
? Thanks.
-
@Cobra91151 My guess is that you're missing OpenSSL
-
Hi! What do you mean by missing
OpenSSL
?
-
@Cobra91151 You're trying to access HTTPS URLs which are encrypted.
-
If
OpenSSL
is missing when why theFollow link
in the context menu works? How to get the access to the source code of theQWebEngine
context menu?
-
-
Ok. Thanks. I think the problem is with tabs. These links will open in the new tabs, but I need to open it in the same tab.
-
I have found that the issue is with links that have
target="_blank"
properties. So, I should reimplementQWebEnginePage
createWindow
method to open such links in the same window.
-
@Cobra91151
target="_blank"
links means open in new window/tab, so why would you want to (re-)implement to open in same window? If anything you need to change the link?
-
I know what
target="_blank"
means, I illustrated it for testing purposes. The problem is withQWebEngine
doesn't work with it well, and do nothing when clicking on such link. How can I change such links for every website on the web?
-
I have fixed it by reimplementing
QWebEnginePage
.appwebenginepage.cpp
QWebEnginePage *AppWebEnginePage::createWindow(QWebEnginePage::WebWindowType) { return this; }
And added the page to the
QWebEngineView
.browserTest = new QWebEngineView(browserTab); AppWebEnginePage *webPage = new AppWebEnginePage(); browserTest->setPage(webPage);
Now it opens all links in the
QWebEngineView
window.
-
Cobra91151 I'm also facing the same problem in Python and PyQt5. How to solve this problem in Python?