我有一个Safari扩展程序和一个NPAPI插件,我正在尝试获取浏览器和标签的标识符,这些标识符在加载项之间是持久的,直到窗口/标签关闭。我使用的其中一个对象需要通过某个标识符查找选项卡。在我们的Windows实现中,他们使用窗口API来获取指向窗口的指针(表示选项卡)并向上走父级列表以获得顶级窗口(代表浏览器)。
Mac Safari上有这样的东西吗?
答案 0 :(得分:2)
在任何运行插件的Mac浏览器(包括64位Safar)中都无法获得指向浏览器窗口的指针,因为Windows不能跨进程共享。而且,这个概念在任何平台上都存在严重缺陷;许多浏览器允许将标签拖出一个窗口而不是另一个窗口。在这种情况下,即使用户甚至没有重新加载页面,您是否希望您的插件突然相信它在新页面中?
鉴于API没有标签概念,我无法想到任何可以跟踪标签的方法。我强烈建议重新考虑这个要求,因为从用户的角度看它似乎非常随意。 (例如,如果我重新加载页面,那是相同的,但是如果我关闭一个标签,然后立即使用浏览器的undo-close-tab版本重新打开它,那不是吗?如上所述,如果我拖动一个在窗口之间的选项卡,选项卡有点不同?)