我开发了一个32位NPAPI插件。这个插件有一个返回插件版本的本机函数。我在Library / Internet Plugin文件夹下安装了这个bundle文件。我有一个带按钮的测试html页面。单击此按钮,插件的版本将显示在警告框中。在32位模式的safari 5中,这个插件工作正常,它给了我版本。
在32位模式的safari 5.1中点击按钮我无法获得该版本。
safari 5中的呼叫流程: NP_Initialize() - > NP_GetEntryPoints() - > NPP_New() - > NPP_GetValue()。 点击按钮NPP_GetValue() - > invoke() - >插件方法。
safari 5.1中的呼叫流程: NP_Initialize() - > NP_GetEntryPoints() - > NPP_New() 点击按钮没有任何反应。
这是我的HTML文件的摘录:
<HTML>
<HEAD>
</HEAD>
<BODY>
<td><input type='button' name=version id='version' value='version'
onclick="javascript:version()"/>
</td>
<object id="pluginobj" type="application/my-p"></object>
<SCRIPT language="JavaScript1.3">
function version()
{
window.alert(document.getElementById("pluginobj").version());
}
</SCRIPT>
</BODY>
</HTML>