Настройка WebBrowser.DocumentText без перехода к about:blank
Когда вы устанавливаете это свойство, элемент управления WebBrowser автоматически переходит на URL about: blank перед загрузкой указанного текста. Это означает, что события Navigating, Navigated и DocumentCompleted происходят при установке этого свойства, и значение свойства Url больше не имеет смысла.
https://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.documenttext(v=vs.110).aspx
Скажем, сначала я хочу загрузить локальный HTML-файл, используя Browser.Url = new Uri(some filePath.html);
Этот файл HTML содержит ссылки, такие как <script src="../Content/Scripts/ThisView.js"></script>
Это хорошо работает. Потому что URL установлен.
Затем я хочу манипулировать документом, используя HtmlAgilityPack
или с загрузкой нового контента с помощью DocumentText
сеттер, не теряя Browser.Url
(поэтому ссылки на скрипты и т. д. будут сломаны).
Есть ли способ обойти это, или я должен также включить ссылки в документе?
1 ответ
Это можно сделать, взаимодействуя с объектной моделью документа страницы, загруженной в элемент управления WebBrowser, а не заменяя весь DocumentText (который выполняет навигацию).
Посмотрите на свойство WebBrowser.Document: https://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.document(v=vs.110).aspx
Что-то вроде:
webBrowser1.Document.Body.InnerText = "hello, world!";
Обратите внимание, что для этого необходимо сначала убедиться, что браузер завершил переход на вашу "стартовую" страницу.