Plugins NPAPI:非可视插件的首选窗口模型(带窗口/无窗口/xembed)

Plugins NPAPI:非可视插件的首选窗口模型(带窗口/无窗口/xembed),plugins,npapi,browser-plugin,Plugins,Npapi,Browser Plugin,我正在创建一个NPAPI插件,它不应该有UI(仅用于Javascript)。我应该使用什么样的窗口模式(带窗口/无窗口/xembed)来支持尽可能多的浏览器(和浏览器版本) 我目前执行以下功能: NPP\u设置窗口:不执行任何操作,返回NPERR\u NO\u错误 NPP\u事件:不执行任何操作,返回kNPEventNotHandled(0) NPP\u设置值:不执行任何操作,返回NPERR\u NO\u错误 NPP\u GetValue:如果要求NPPVpluginNeedsXEmbed,如

我正在创建一个NPAPI插件,它不应该有UI(仅用于Javascript)。我应该使用什么样的窗口模式(带窗口/无窗口/xembed)来支持尽可能多的浏览器(和浏览器版本)

我目前执行以下功能:

  • NPP\u设置窗口
    :不执行任何操作,返回
    NPERR\u NO\u错误
  • NPP\u事件
    :不执行任何操作,返回
    kNPEventNotHandled
    (0)
  • NPP\u设置值
    :不执行任何操作,返回
    NPERR\u NO\u错误
  • NPP\u GetValue
    :如果要求
    NPPVpluginNeedsXEmbed
    ,如果浏览器支持它,回答是(
    NPNVSupportsXEmbedBool
    ),否则回答否

对于这个插件,我现在只支持Linux和Windows。NPPVpluginNeedsXEmbed是必需的,但是一些旧版本可能不支持它,因为XEmbed的示例插件仅在Firefox 2.0+上受支持

我见过的最常见的情况是根本不关心窗口模式,将对象标记设置为1x1(您可以尝试0x0,但我见过与此相关的浏览器错误),在这种情况下,您使用的窗口模式并不重要。但是,我自己也会做无窗口的,因为它不会导致商标块浮动在普通的有窗口(XEmbed或not)插件提供给您的所有其他DOM元素上


如果设置了FB_GUI_DISABLED(禁用FB_GUI_禁用)标志,则会出现这种情况。

感谢您提供有关1x1尺寸的提示。省去了我费心费力地找到它的麻烦:)。你知道哪些浏览器版本支持X11上的windowless吗?据我所知,所有这些版本(都是合理的最新版本)都支持;但最坏的情况是,您告诉它执行无窗口操作,它将返回一个错误。这个错误只会迫使你进入窗口模式。既然你想让你的插件变小,那可能没什么大不了的。