C # Webbrowser может писать разные HTML-файлы в зависимости от версии IE? - PullRequest
0 голосов
/ 10 мая 2018

Моя программа добавляет некоторые элементы HTML из файла шаблона HTML по действиям пользователя.

string currDir = Directory.GetCurrentDirectory();
string targetURL = String.Format("file:///{0}/Resources/question_template.html", currDir);
web.Navigate(targetURL);
web.DocumentCompleted += Web_DocumentCompleted;

// writing user's selections into a html file as table.
private static void Web_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    GenerateQuizForTypeA(MainWindow.VM.lstPartA_Words);
    ...
    File.WriteAllText(@"Resources\bob_output.html", web.Document.Body.Parent.OuterHtml, Encoding.GetEncoding(web.Document.Encoding));
}

И странным моментом является то, что HTML-файлы генерируются совершенно по-разному в зависимости от среды. До сих пор я понял, что веб-браузер C # WinForms основан на движке рендеринга IE7, если вы не измените значение реестра. (например: Использовать последнюю версию Internet Explorer в элементе управления веб-браузера )

но это не проблема рендеринга. Я не ожидал, что два разных HTML-файла могут быть созданы с помощью одного и того же EXE-файла. Я использовал веб-браузер HtmlElement, web.Document.CreateElement, SetAttribute

Пожалуйста, обратитесь к обоим скриншотам. обе программы были встроены в envB и используют .net Framework 3.5, WPF (но в настоящее время используется веб-браузер WinForms с WindowFormsIntegration)

(envA) Windows7 64 бит, IE8
Кроме того, все элементы превращаются в верхние регистры, плюс это избавляет от двойных кавычек. ссылка: http://softinus.com/files/bob/bob_output_IE8.html with IE8

(envB) Windows10 64 бит, IE11
ссылка: http://softinus.com/files/bob/bob_output_IE11.html IE11

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...