我正在將我的應用程序從WebKit移植到WebEngine(似乎這對於渲染angular-basad html來說更好)。 我面臨的問題,我不能讓QtWebEngine裝載本地的iframe,儘管我設置,我發現所有可能的設置:QtWebEngine:iframe中的「不允許加載本地資源」,如何禁用web安全?
從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(\實例\ Qt的5.4 \ webenginewidgets \ fancybrowser),並嘗試在它加載本地HTML文件是這樣的:
的index.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>
如果你設置的環境變量QTWEBENGINE_REMOTE_DEBUGGING一些端口,那麼你就可以打開127.0.0.1:port並查看控制檯此錯誤:
"Not allowed to load local resource".
我真的沒有想法現在如何解決這個問題...應該有一些方法可以傳遞給WebEngine,如「--disable-web-security」...
感謝您的幫助!
你怎麼打開它在幻想瀏覽器?您是否輸入了文件:// /index.html url? –
另外,請粘貼完整的錯誤。 「不允許加載本地資源:XXXXXXXXXXXXX」 它抱怨的文件名稱是什麼? –