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
-
@Cobra91151 My guess is that you're missing OpenSSL
Hi! What do you mean by missing
OpenSSL
? -
Hi! What do you mean by missing
OpenSSL
?@Cobra91151 You're trying to access HTTPS URLs which are encrypted.
-
@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? -
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. -
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? -
@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?