Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> WebBrowser и JavaScript 
V
    Опции темы
Jamon
Дата 5.4.2008, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 1.9.2007

Репутация: нет
Всего: нет



так ,проблема такая. с помощью  компонента WebBrowser перехожу на некоторую страничку. В этой страничке есть ДжаваСкритовский код ,который ,выполняясь, вставлят в конечную страницу некий хтмл код ,со своими элементами управления. Прямой ссылки на страничку с этим вставляемым кодом в скрипте нету. Тем не менее ,когда я отслеживаю действия через Fiddler ,я спокойно получаю получаю прямой линк на этот вставляемый код, причем когда я перехожу по этой ссылке в опере (к примеру), то в исходном коде уже получаю полноценный хтмл код, со всеми элементами управления. 

Так вот вопрос такой - как мне получить этот хтмл код? есно интересует возможность привести нужные объекты к некоторому элементу из библиотеки mshtml. 

то ,что у меня получилось пока что - это лишь найти соответствующий скрипт в исходной страничке и привести его к типу HTMLScriptElement ,запустить же его и получить хтмл код не получается.   

Выслушаю все предложенияsmile
PM MAIL   Вверх
mr.DUDA
Дата 6.4.2008, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Допустим, на странице есть ф-ция test:
Код
<HTML>
<script>
function test()
{
    return "Bla-bla-bla";
}
</SCRIPT>
<BODY>
</BODY>
</HTML>


Вызываем её по нажатию кнопки на форме:
Код
        private void button1_Click(object sender, EventArgs e)
        {
            string ret = webBrowser1.Document.InvokeScript("test") as string;
        }


В переменной ret будет строка, которую вернул test. Документ должен быть уже загружен на этот момент (ф-ция test должна в нём присутствовать).


--------------------
user posted image
PM MAIL WWW   Вверх
Jamon
Дата 6.4.2008, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 1.9.2007

Репутация: нет
Всего: нет



в общем ,проблема оказалась несколько глубже. помимо скрипта был еще объект iframe, следствием которого и был хтмд-код, который я никак не мог вытащить. делал я так

Код

...
{
HTMLDocument document = this.webBrowser1.Document.DomDocument as HTMLDocument;
IHTMLElementCollection elColl = document.all;

            foreach (IHTMLElement elem in elColl)
            {
                if (elem is IHTMLIFrameElement)
                {
                    HTMLIFrameClass elemi = elem as HTMLIFrameClass;
                    IHTMLDocument2 doc = elemi.contentWindow.document as IHTMLDocument2;   //вот здесь вылетал эксепшн Unathorized
                }
}


т.е. я не мог получить код из очевидного свойства. Тем не  менее, решение нашлосьsmile вот здесь
http://codecentrix.blogspot.com/2008/02/wh...ent-throws.html

Это сообщение отредактировал(а) Jamon - 6.4.2008, 17:07
PM MAIL   Вверх
Exai1e
Дата 26.8.2008, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 908
Регистрация: 3.12.2006
Где: Moscow

Репутация: 3
Всего: 30



Извиняюсь за некропост  smile 
Вопрос решен.
Спасибо.

Это сообщение отредактировал(а) Exai1e - 26.8.2008, 13:20


--------------------
"Решение зависит от выбранного геморроя" © Snowy
"у нас как в армии - либо работает, либо так и задумано"
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0769 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.