私は自分のアプリケーションを WebKit から WebEngine に移植しています (angular-basad html をレンダリングする方がはるかに優れているようです)。見つけたすべての可能な設定をセットアップしたにもかかわらず、QtWebEngine を有効にしてローカル iframe をロードできないという問題に直面しました。
mainwindow.cpp のコード
view->page()->settings()->setAttribute(QWebEngineSettings::LocalContentCanAccessFileUrls, true);
view->page()->settings()->setAttribute(QWebEngineSettings::LocalContentCanAccessRemoteUrls, true);
view->page()->settings()->setAttribute(QWebEngineSettings::LocalStorageEnabled, true);
view->settings()->setAttribute(QWebEngineSettings::LocalContentCanAccessFileUrls, true);
view->settings()->setAttribute(QWebEngineSettings::LocalContentCanAccessRemoteUrls, true);
view->settings()->setAttribute(QWebEngineSettings::LocalStorageEnabled, true);
最も簡単な例は、WebEngine ベースの FancyBrowser (\Examples\Qt-5.4\webenginewidgets\fancybrowser) を使用して、次のようなローカル html ファイルを読み込もうとすることです。
インデックス.html:
<html>
<head>
<title>Hi there</title>
</head>
<body>
This is a page
a simple page
<iframe id="some_idrame" width="0" height="0" style="border: none" src="some_iframe.html" name="target" sandbox="allow-scripts"></iframe>
</body>
</html>
some_iframe.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>La-la-la</title>
</head>
<body>
Lalala
</body>
</html>
env var QTWEBENGINE_REMOTE_DEBUGGING をいくつかのポートに設定すると、127.0.0.1:port を開いて、コンソールに次のエラーが表示されます。
"Not allowed to load local resource".
この問題を解決する方法が本当にわかりません...「--disable-web-security」のようなものを WebEngine に渡す方法があるはずです...
助けてくれてありがとう!