IE "на браузер" панель обозревателя - PullRequest
3 голосов
/ 24 февраля 2011

Есть ли способ создать панель обозревателя "в браузере" в IE, что означает панель обозревателя, общую для всех открытых вкладок? Панели обозревателя, созданные в соответствии с рекомендациями MS, являются «для каждой вкладки», что означает, что на каждой новой вкладке открывается новая панель обозревателя. Кроме того, есть ли способ отобразить HTML-документ внутри одной из встроенных панелей проводника для каждого браузера - «Избранное», «Ленты», «Обсудить» и т. Д .?

1 Ответ

1 голос
/ 24 февраля 2011

Нет встроенного способа сделать это.Модель расширяемости для панелей проводника диктует соотношение 1: 1 между панелями проводника и вкладками.Причин для этого много, и часто они связаны с самым простым путем перехода с IE6 на современный веб-браузер с вкладками.Подумайте об архитектуре на основе OLE: для начала у вас есть объект сайта, установленный IObjectWithSite.Вы используете сайт для опроса таких вещей, как IWebBrowser2, текущий IHTMLDocument2 и т. Д. Часто расширения кэшируют эти указатели, когда получают их.Таким образом, вы хотите это соответствие 1: 1.

Если вы хотите иметь панель обозревателя с одним экземпляром, вы могли бы сделать это, но это потребовало бы повторного родительского перекрестного процесса дочерних окон и целой связки BHO-на основе кода, чтобы получить правильное состояние окна IE.Вам лучше сделать ваше состояние легко сериализуемым, обработав DWebBrowserEvents2 :: WindowStateChanged и подделав его.

...