有没有办法在IE中创建“每个浏览器”的资源管理器栏,这意味着所有打开的标签页都有一个常见的资源管理器栏?根据MS准则创建的资源管理器栏是“每个选项卡”,这意味着每个新选项卡上都会打开一个新的资源管理器栏。或者,有没有办法在内置的“每个浏览器”浏览器栏中显示一个HTML文档 - “收藏夹”,“订阅源”,“讨论”等等?
答案 0 :(得分:1)
没有内置的方法可以做到这一点。 Explorer栏的可扩展性模型决定了Explorer栏和Tabs之间的1:1比例。造成这种情况的原因很多,而且往往与从IE6到带有Tabs的现代web浏览器的最简单路径有关。想想基于OLE的架构:对于初学者,你有你的站点对象,由IObjectWithSite设置。您可以使用该站点查询IWebBrowser2,当前的IHTMLDocument2等内容。通常,扩展会在获取它们时缓存这些指针。因此,你想要这种1:1的对应关系。
如果你想拥有一个单一的实例浏览器栏,你可以这样做,但它会涉及重新生成子窗口跨进程,以及一大堆基于BHO的代码,以使IE的窗口状态恰到好处。你最好使你的状态易于序列化,处理DWebBrowserEvents2 :: WindowStateChanged并伪造它。