Настройка 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!";

Обратите внимание, что для этого необходимо сначала убедиться, что браузер завершил переход на вашу "стартовую" страницу.

Другие вопросы по тегам