На Win7/Win8 не создаётся интерфейс ICoreWebView2_21 и результат работы скрипта возвращается в виде контента json-строки. То есть тело документа преобразовано в строку, которая может быть сохранена в json объекте как строка. Это возвращаемое значение надо преобразовать в обычную строку. В актуальной версии это делается через ICoreWebView2ExecuteScriptResult::TryGetResultAsString, но в базовом интерфейсе возвращается "сырая" строка. Во всяких бейсиках и шарпах вызывается метод deserialize, заменяющий escape-последовательности.
Есть ли подобный функционал в WebView2 для С++? Раз оно делается внутри WebView2, то такой функционал есть, но вот можно ли его использовать самостоятельно?
wil::com_ptr<ICoreWebView2_21> webView = m_webView.try_query<ICoreWebView2_21>();
if( webView )
{
HRESULT hr = webView->ExecuteScriptWithResult( L"document.body.outerHTML;", Callback<ICoreWebView2ExecuteScriptWithResultCompletedHandler>( this, &Dlg::ExecuteScriptComplete ).Get() );
}
else
{
AfxMessageBox( L"try_query<ICoreWebView2_21> == null" );
HRESULT hr = m_webView->ExecuteScript( L"document.body.outerHTML;", Callback < ICoreWebView2ExecuteScriptCompletedHandler>( this, &Dlg::ExScriptComplete ).Get() );
}