Использую стандартный System.Windows.Forms.WebBrowser для загрузки и отображения одной вебстраницы. WebBrowser эмулирует 11 версию IE. Страница имеет IFrame и отображается нормально.
Мне необходимо получить полный HTML код страницы с содержимым IFrame, но эти элементы пусты. В полноценном IE html-код можно видеть. Текст кода пробую получать следующими двумя способами:
public String HtmlDocumentText {
get { return webBrowser.DocumentText; }
}
public String DomDocumentText {
get {
// REM. http://stackoverflow.com/questions/3640236/converting-htmldocument-domdocument-to-string
var document = webBrowser.Document;
var documentAsIHtmlDocument3 = (mshtml.IHTMLDocument3)document.DomDocument;
var content = documentAsIHtmlDocument3.documentElement.outerHTML;
return content;
}
}
Мне кажется, что проблема заключается в ограничениях безопасности для этого элемента, потому как следующий код вызывает ошибку доступа:
var frames = webBrowser.DocumentTestToDelete.Window.Frames;
var frame1 = webBrowser.DocumentTestToDelete.Window.Frames[0];
var document1 = frame1.Document;
Ошибка: Access Denied (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)).
Замечу, что мне удалось получить код IFrames при помощи JavaScript:
string jCode = "var iframe = document.getElementById('frame-id'); var innerDoc = iframe.contentDocument || iframe.contentWindow.document; innerDoc.documentElement.innerHTML";
Object html = webBrowser.WebBrowser.Document.InvokeScript("eval", new object[] { jCode });
Но это не то что надо, хотя я мог бы такой подход использовать, но с большими трудозатратами. Может быть есть способ заставить WebControl отдавать полный html вместе с содержимым IFrame?
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Почему не могу использовать стандартные элементы в visual studio? Подскажите как решить данную проблему пожалуйста
VS2010 как сделать натуральную сортировку в datagrid согласно примеру в msdnСортировка работает, но цифры сортирует как символы
Проблема кажется детской, но я почему-то(тупой) не могу до конца разобратьсяНеобходимо на форме поставить у кнопок свойства DialogResult как "OK" и "Cancel"
Пытаюсь подружить EF6 и SQLite базу данныхСоздал модель и контекст данных