FireFox插件和扩展开发.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
FireFox插件和扩展开发.doc

FireFox插件和扩展开发npruntime实例打算编写一个Firefox的插件,先开看看官网给的例子 ?下载地址:/seamonkey/source/modules/plugin/samples/npruntime/ 下载方式:试了下SVN下不了,只能手动了,点击到项目中的每个文件,页面右上方出现一个方框,里面有CVS Log,CVS Blame,CVS Graph,Diff file,Raw file。选择Raw file然后另存为 ?按照网页说明编译该项目:/en/Compiling_The_npruntime_Sample_Plugin_in_Visual_Studio 编译后如果有错误,看该页最下方的Version Issues ?编译成功后,需要做一些修改,由于例程中的Test.htm太旧了 ?修改plugin.cpp中的Invoke函数,将原函数中的代码屏蔽 view plaincopy to clipboardprint? bool?? ScriptablePluginObject::Invoke(NPIdentifier?name,?const?NPVariant?*args,?? ???????????????????????????????uint32_t?argCount,?NPVariant?*result)?? {?? ??if?(name?==?sFoo_id)?{?? ????printf?(foo?called!/n);?? ????MessageBox(NULL,Lfoo?called,LPromopt,MB_OK);?? ????return?PR_TRUE;?? ??}?? ??return?PR_FALSE;?? }?? 将Invoke函数修改为弹出对话框 ?修改test.htm文件为 view plaincopy to clipboardprint? HTML?? HEAD?? TITLEScriptable?Plug-in?Test/TITLE?? /HEAD?? BODY?id=bodyId?? center?? h1Sample?Scriptable?Plug-in?/h1?? /center?? brbr?? center?? div?id=result?? presults?go?here:/p?? /div?? embed?id=embed1?name=mypi?type=application/mozilla-npruntime-scriptable-plugin?width=600?height=40br?? mce:script?type=text/javascript!--?? var?embed1?=?document.getElementById(embed1);?? //?--/mce:script ?? form?name=formname?? input?type=button?value=alert(embed1.foo())?onclick=embed1.foo()?? input?type=button?value=Call?pluginobj.foo()?onclick=pluginobj.foo()?? input?type=button?value=alert(mypi.foo())?onclick=document.mypi.foo()?? input?type=button?value=alert(pluginobj.bar)?onclick=alert(pluginobj.bar)?? /form?? /center?? /BODY?? /HTML?? 例子中有三种方法获取到插件,然后调用foo函数,弹出对话框。最后一个按钮负责获取属性值。 (二)、编写和使用XPCOM组件 用C++编写XPCOM组件?还是先开看看官网给的例子,下载示例程序 xpcom-test ?配置方法见文章 /en/How_to_build_a_binary_XPCOM_component_using_Visual_Studio 没有必要下载该文章中的Gecko-SDK,如果使用较新版本的xul-runner,使用它的SDK就可以了, ?如果不使用Gecko-SDK,直接使用xul-runner的SDK,项目的一些配置需要修改: 1、项目属性中的附加包含目录位置为(xul-runner dirpath)/sdk/include,“附加库目录为”(xul-runner dirpath)/sdk/lib 2、由于XPCOM需要使用xpidl工具生成.h和.xpt文件,每次用命令行的方式比较繁琐,可以使用该例程中的批处理文件,示例程序中的xpidl-buil

文档评论(0)

dmz158 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档