Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB .NET > Отображение середины сайта в webbrowser.


Автор: vladd 30.3.2012, 15:36
Есть сайт http://www.oddschecker.com. Мне в webbrowser необходимо отображать только среднюю часть. Как это можно сделать?
user posted image

Автор: diadiavova 30.3.2012, 16:04
Тут собственно просто надо уметь с DOM работать. Если решать в лоб, то как-нибудь так
Код

WebBrowser1.Document.Body.innerHTML = WebBrowser1.Document.getElementById("pageRP0main").outerHTML;
Но правда, это может повредить функциональности страницы, если там есть активное содержимое, а оно будет удалено. В ином случае придется страничку изучить более подробно и ненужное просто скрыть, а не удалять, но чтобы скрипты к примеру работали.

Автор: vladd 30.3.2012, 16:15
А если попробовать часть webbrowser прикрыть Group Box или же Picture Box. Т.к. на страничке должны обновляться данные каждую минуту. И еще постояно выскакивает табличка что возникла ошибка. Я думаю что контрол webbrowser не поддерживает javascript. Правильно ли мое предположение? И как это можно исправить?

Автор: diadiavova 30.3.2012, 16:22
Цитата(vladd @  30.3.2012,  17:15 Найти цитируемый пост)
Я думаю что контрол webbrowser не поддерживает javascript. Правильно ли мое предположение?

Нет правильно. Но тут дело даже не в яваскрипте. Я ведь не на нем код дал.
Цитата(vladd @  30.3.2012,  17:15 Найти цитируемый пост)
Т.к. на страничке должны обновляться данные каждую минуту.

Внеси этот код в обработчик события DocumentCompleted например и он будет выполняться при каждом обновлении.
Цитата(vladd @  30.3.2012,  17:15 Найти цитируемый пост)
И еще постояно выскакивает табличка что возникла ошибка. 

Табличку можно убрать в свойствах обозревателя на вкладке Дополнительно поставь флажок на "Отключить отладку сценариев(другие)." 

Автор: vladd 30.3.2012, 17:09
Так как в нижней части страницы есть переключатель отображения коэффициентов с английского на европейский. А страница загружается часто с английской раскладкой, а я привык к европейской. Поэтому я расположил WebBrowser на всю закладку Tab Control. В верхей части поместил Group Box. И на него уже положил Data Grid и Picture Box. Вот что получилосьuser posted image  

Цитата(vladd @  30.3.2012,  17:15 Найти цитируемый пост)
И еще постояно выскакивает табличка что возникла ошибка. 

Табличку можно убрать в свойствах обозревателя на вкладке Дополнительно поставь флажок на "Отключить отладку сценариев(другие)."

А где эта вкладка дополнительно в свойствах обозревателя? Я никогда с этим не сталкивался.

Автор: diadiavova 30.3.2012, 18:37
Цитата(vladd @  30.3.2012,  18:09 Найти цитируемый пост)
 В верхей части поместил Group Box. И на него

Твое дело, конечно, но надеюсь ты хотя бы сам понимаешь какую хрень замутил smile 
Цитата(vladd @  30.3.2012,  18:09 Найти цитируемый пост)
А где эта вкладка дополнительно в свойствах обозревателя? Я никогда с этим не сталкивался. 

Либо через меню Сервис Интернет Эксплорера, либо из главного меню открой панель управления и найди там.

Автор: vladd 31.3.2012, 07:00
А разве есть связь между IE и WebBrowser?

Автор: diadiavova 31.3.2012, 12:38
Цитата(vladd @  31.3.2012,  08:00 Найти цитируемый пост)
А разве есть связь между IE и WebBrowser? 

Есть. Правда в данном случае это не важно. Свойства обозревателя - системная настройка, именно поэтому данную программу можно запустить не только через ие, но и через панель управления.

Странно, почему у меня такое ощущение, что я убеждаю тебя попробовать сделать как я посоветовал? smile 

Автор: vladd 31.3.2012, 17:40
Цитата(diadiavova @ 30.3.2012,  18:37)

Твое дело, конечно, но надеюсь ты хотя бы сам понимаешь какую хрень замутил 


Для меня как самоучки тяжело понять какую хрень я замутил. Количество котролов не увеличилось, код программы не усложнился, страница сайта фукциональность свою не потеряла.
Был увеличен размер WebBrowser, и в верхнюю часть помещены контролы. Что именно надо считать хренью? 

Автор: diadiavova 31.3.2012, 18:52
Если ты сам не видишь проблемы в том, чтобы сделать страницу сайта частью интерфейса и при этом закрыть часть этой страницы, а компоновку элементов управления подогнать под контент страницы, то делай как знаешь. Главное, чтобы тебя все устраивало в твоем приложении. Ну, а насчет не усложнившегося кода, что тут можно сказать... если бы простые решения всегда были лучшими, то видимо о более сложных не было бы смысла даже задумываться.

У меня к тебе только один вопрос(их может быть и больше, но так... для примера), а что будет, если хозяева сайта малость дизайн поменяют и все твои городушки вылезут наружу? Будешь программу переписывать и передвигать там контролы?

Автор: vladd 1.4.2012, 07:11
Всё правильно. Но парсинг страниц меня пугает. Я никогда еще не делал его на vb net. Поэтому всё что угодно только не парсинг. А когда сайт переделают, может к тому времени рекурсию освою, а там и парсинг будет проще делать. 

Автор: diadiavova 1.4.2012, 08:46
Цитата(vladd @  1.4.2012,  08:11 Найти цитируемый пост)
Но парсинг страниц меня пугает.

А при чем тут парсинг? smile Тебе надо просто с DOM освоиться, а там уже на каком языке с ней работать - не важно.

Автор: vladd 2.4.2012, 11:23
А где можно почитать про DOM поближе к моему вопросу?

Автор: diadiavova 2.4.2012, 11:45
Цитата(vladd @  2.4.2012,  12:23 Найти цитируемый пост)
А где можно почитать про DOM поближе к моему вопросу? 

В любом справочнике веб-разработчика. Официальная документация по ие-шной реализации здесь
http://msdn.microsoft.com/en-us/library/hh772960%28VS.85%29.aspx
Но тут разобраться без 100 грамм предварительной подготовки будет сложновато. А так в принципе, самое простое - это использование тех методов, которые предоставляют классы HtmlDocument, HTMLElement и т. д. Там в принципе того что есть вполне достаточно по крайней мере для базовой работы с DOM.

Автор: vladd 2.4.2012, 13:13
Спасибо большое. Буду разбираться.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)