Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Заблокирован

IWebBrowser2 - как получить текст ошибки javascript, при этом чтоб само окошко с ошибкой не отображалось ?

11.02.2014, 12:40. Показов 840. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет! Вопрос собственно в топике.
По поводу того, чтоб ошибка не отображалась, на сколько я понял есть
C++
1
HRESULT IWebBrowser2::put_Silent(VARIANT_BOOL bSilent);
А вот по поводу того, как отловить её текст, что - то не пойму ... Есть догадки, что надо задействовать
IOleCommandTarget и как - то привязать метод
C++
1
STDMETHODIMP CMySuperSinkClass::Exec( const GUID* pguidCmdGroup, DWORD nCmdID,DWORD nCmdexecopt, VARIANTARG* pvaIn, VARIANTARG* pvaOut )
к объекту контрола, но вот как это сделать - не пойму ...
Например, обработчик сообщений (Sink функция) от IWebBrowser2 привязывается методом IConnectionPoint::Advise, а как привязать и вообще задействовать CMySuperSinkClass::Exec ума не приложу... Или вообще эту проблему надо решать по другому?

Добавлено через 7 минут
А и ещё, после того, как произойдёт ошибка джава скрипта на странице, по мимо того, что окошко с ним надо скрыть, получить текст ошибки, надо ещё и продолжить выполнение джава скриптов на странице, а не останавливать их ...

Добавлено через 3 часа 3 минуты
Убеждённый,

Добавлено через 2 часа 24 минуты
Я вот просто не пойму. Есть у меня класс, который обрабатывает сообщения IWebBrowser2 типа BEFORE_NAVIGATE, DOCUMENT_COMPLETE И тд... А вот куда и главное как прикручивать класс для обработки события джава скрипта ... Вот создал я класс:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#pragma once
 
class CJSErrHandler : public IOleCommandTarget//, public IDocHostUIHandler 
{
public:
    CJSErrHandler();
    virtual ~CJSErrHandler();
 
    STDMETHOD(QueryInterface)(REFIID riid, PVOID *ppvObject);
    STDMETHOD_(ULONG, AddRef)(void);
    STDMETHOD_(ULONG, Release)(void);
    STDMETHOD(QueryStatus)( const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText );
    STDMETHOD(Exec)( const GUID* pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANTARG* pvaIn, VARIANTARG* pvaOut );
 
private:
      ULONG m_cRefs;
};
Ну как бы и дальше что? Вот класс с функцией Invoke для отловки сообщений IWebBrowser2, о которых я говорил выше, можно прикрутить к IWebBrowser2 получив IConnectionPoint и вызвав у него метод Advise с параметром указателя на мой класс...
А как быть с этим IOleCommandTarget, что - то я совсем не пойму, как его прикрутить к браузер контролу .... ?

Добавлено через 18 часов 5 минут
Ааа , я сам лопух В класс контейнера - то я всё добавлял и наследовал как надо, а вот в функцию QueryInterface класса контейнера забыл добавить строку про то, что мой класс поддерживает IOleCommandTarget

C++
1
2
3
4
...
else if (IsEqualIID(riid, IID_IOleCommandTarget))
        *ppvObject = (IOleCommandTarget *)this;
...
Браузер контрол не виноват Он по честному запрашивал интерфейс IOleCommandTarget, а я получается ему возвращал E_NOINTERFACE, по этому функция IOleCommandTarget::Exec и не вызывалась...
Нда.. в голове солома Надо быть по внимательней

0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.02.2014, 12:40
Ответы с готовыми решениями:

При включении компьютера, после того как загружается windows, Выскакивает окошко с ошибкой "Прекращена работа
При включении компьютера, после того как загружается windows, Выскакивает окошко с ошибкой "Прекращена работа программы...

Как получить текст ошибки при обработке строк с множеством пробелов
читал мануал и там написано:"Если файл содержит только код PHP, предпочтительно опустить закрывающий тег в конце файла. Это помогает...

Окошко c ошибкой DOS при запуске приложений
Здравствуйте, очень нужна помощь. При запуске некоторых приложений(skype, internet explorer) начало всплывать окошко с ошибкой -...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.02.2014, 12:40
Помогаю со студенческими работами здесь

Как сделать чтоб меню отображалось поверх остального ?
В конструкторе все располагаю нормально,но при отладке элемент передвигается,думаю это из за меню ,которое сверху ,но не могу найти такого...

При добавлении в таблицу 40 столбцов в БД mysql, в phpMyAdmin выскакивает диалоговое окошко с ошибкой
Здравствуйте. Я использую локальный сервер OpenServer. Так вот у меня есть таблица в ней 39 стлбцов. Как только я создаю новый столбец в...

Японская программа при запуске выкидывает окошко с ошибкой неправильного определения даты
Доброго времени всем!!!! Нужна помощь в запуске программы японских программистов. Программа при запуске выкидывает окошко с ошибкой...

При отладке программы вылетает окошко с ошибкой: использование переменной без инициализации
код: #include <iostream> #include <conio.h> int A,n,m; using namespace std; void poisk1(); void poisk2(); int main() ...

как сделать в этом коде чтоб конкретное число кнопок можно было задавать допустим 3 кнопки чтоб открывало
this.Load += new EventHandler(Form4_Load); button1.MouseHover += new EventHandler(button1_MouseHover); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru