有没有办法在 IE 中创建一个“每个浏览器”的浏览器栏,这意味着所有打开的标签页都有一个浏览器栏?按照 MS 指南创建的资源管理器栏是“每个选项卡”,这意味着在每个新选项卡上都会打开一个新的资源管理器栏。或者,有没有办法在内置的“每个浏览器”资源管理器栏中显示 HTML 文档 - “收藏夹”、“提要”、“讨论”等?
问问题
204 次
1 回答
1
没有内置的方法可以做到这一点。Explorer 栏的可扩展性模型规定 Explorer 栏和选项卡之间的比例为 1:1。造成这种情况的原因很多,而且通常与从 IE6 到带有 Tabs 的现代网络浏览器的最简单途径有关。考虑基于 OLE 的体系结构:对于初学者来说,您有自己的站点对象,由 IObjectWithSite 设置。您可以使用该站点来查询 IWebBrowser2、当前 IHTMLDocument2 等内容。通常,扩展在获取这些指针时会对其进行缓存。因此,您需要这种 1:1 的对应关系。
如果你想拥有一个单一的实例资源管理器栏,你可以这样做,但它会涉及重新设置子窗口跨进程,以及一大堆基于 BHO 的代码来正确获取 IE 的窗口状态。你最好让你的状态易于序列化,处理 DWebBrowserEvents2::WindowStateChanged 并伪造它。
于 2011-02-24T18:25:38.240 回答