SpicIE - Как получить реальный адрес в адресной строке? - PullRequest
0 голосов
/ 22 января 2011

Я пытаюсь написать небольшое дополнение для Internet Explorer, используя SpicIE.Я понял, как реагировать на события, используя такой код:

this.OnDocumentComplete += new SpicIE.Common.WebBrowserEvent_DocumentComplete(SamplePlugin_OnDocumentComplete);
this.OnNavigateComplete += new SpicIE.Common.WebBrowserEvent_NavigateComplete2(SamplePlugin_OnNavigateComplete);
this.OnBeforeNavigate += new SpicIE.Common.WebBrowserEvent_BeforeNavigate2(SamplePlugin_OnBeforeNavigate);

Когда вызываются обработчики событий, я вижу текущий URL-адрес события.Однако обработчики событий вызываются для каждого события объекта веб-браузера, включая iframes.Мне нужно отвечать только при изменении URL-адреса в адресной строке (где вы вводите URL-адрес, по которому хотите перейти).

Как узнать, относится ли событие к верхнему фрейму \ webbrowser?Есть ли способ получить URL адресной строки, используя объект pDisp или что-то еще?

1 Ответ

0 голосов
/ 23 января 2011

После добавления ссылки на Interop.SHDocVw я могу посмотреть:

HostInstance.BrowserRef.LocationURL

Обработчики событий вызываются много раз (из-за iframes), но я могу каждый раз проверять, отличается ли новый адрес от старого.

HostInstance устанавливается в конструкторе плагинов, как и большинство примеров - не забудьте проверить, что HostInstance не равен нулю.

...