Все отлично работает во всех популярных браузерах, но когда я запускаю это в QWebView
QT, я получаю следующие ошибки:
TypeError: 'undefined' is not a function (evaluating '$('#element-tree').jstree') tree.js:31
TypeError: 'undefined' is not a function (evaluating '$('.modal').on')
Я взял пример из папки примеров и установил некоторые параметры, чтобы включить всечто может помешать загрузке страницы.
view->settings()->setAttribute(QWebSettings::JavascriptEnabled, true);
view->settings()->setAttribute(QWebSettings::AutoLoadImages, true);
view->settings()->setAttribute(QWebSettings::JavascriptEnabled, true);
view->settings()->setAttribute(QWebSettings::JavaEnabled, true);
view->settings()->setAttribute(QWebSettings::PluginsEnabled, true);
view->settings()->setAttribute(QWebSettings::PrivateBrowsingEnabled, true);
view->settings()->setAttribute(QWebSettings::JavascriptCanOpenWindows, true);
view->settings()->setAttribute(QWebSettings::JavascriptCanAccessClipboard, true);
view->settings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, true);
view->settings()->setAttribute(QWebSettings::LinksIncludedInFocusChain, true);
view->settings()->setAttribute(QWebSettings::ZoomTextOnly, true);
view->settings()->setAttribute(QWebSettings::PrintElementBackgrounds, true);
view->settings()->setAttribute(QWebSettings::OfflineStorageDatabaseEnabled, true);
view->settings()->setAttribute(QWebSettings::OfflineWebApplicationCacheEnabled, true);
view->settings()->setAttribute(QWebSettings::LocalStorageEnabled, true);
view->settings()->setAttribute(QWebSettings::LocalContentCanAccessRemoteUrls, true);
view->settings()->setAttribute(QWebSettings::DnsPrefetchEnabled, true);
view->settings()->setAttribute(QWebSettings::XSSAuditingEnabled, true);
view->settings()->setAttribute(QWebSettings::AcceleratedCompositingEnabled, true);
view->settings()->setAttribute(QWebSettings::SpatialNavigationEnabled, true);
view->settings()->setAttribute(QWebSettings::LocalContentCanAccessFileUrls, true);
view->settings()->setAttribute(QWebSettings::TiledBackingStoreEnabled, true);
view->settings()->setAttribute(QWebSettings::FrameFlatteningEnabled, true);
view->settings()->setAttribute(QWebSettings::SiteSpecificQuirksEnabled, true);
view->settings()->setAttribute(QWebSettings::JavascriptCanCloseWindows, true);
view->settings()->setAttribute(QWebSettings::WebGLEnabled, true);
view->settings()->setAttribute(QWebSettings::HyperlinkAuditingEnabled, true);
Версии:
Qt v4.8.7
jQuery JavaScript Library v3.3.1
jsTree v3.3.6
navigator.userAgent "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.21 (KHTML, like Gecko) fancybrowser Safari/537.21"
Если я попытаюсь проверить код (jquery.min.js, jstree.js) в браузере Qt, он закрываетсяиз-за:
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
Так что одно из моих предположений состоит в том, что недостаточно памяти и невозможно загрузить весь сценарий и пропустить его при загрузке страницы.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Minimal, Complete, and Verifiable example</title>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
<div class="modal fade autoclean" id="modal-form">
<div class="modal-dialog modal-lg">
<div class="modal-content">
</div>
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){
$('.modal').on('hidden.bs.modal', function (e) {
if($(this).hasClass('autoclean')){
$(this).find('.modal-content').empty();
}
});
});
</script>
</body>
</html>
Открытьна странице выше в браузере Qt (как в Qt / examples / webkit / fancybrowser), и вы получите TypeError: 'undefined' is not a function (evaluating '$('.modal').on')