找回密码
 加入傲游社区
跳转到指定楼层

[插件求助] 总结了插件开发中遇到的一些问题

[复制链接]
我梦江南好 [初入江湖] 发表于 2018-7-3 16:53:04 | 显示全部楼层 |阅读模式  552 0
在插件开发的过程中,发现了一些问题,希望能与大家交流一下。总结如下:
1. AppAction.activate()或AppAction.show()方法,只能打开panel,但无法打开page(虽然手册中说:对page有效)。
2. 对于panel类型的AppAction,即使在def.json里设置了autorun=true,但其实并不能自动启动,初始状态总是“stopped”。必须要鼠标点击或调用action.show()方法后,状态才会变成“active”(而stopped状态下是收不到消息的)。
3. 手册中说script类型的action支持contextMenu类型的入口点。但实际并不能创建自定义的右键菜单。
4. command类型的action和browser.invokeCommand(),不知道用在什么场景,也不知道怎么用(手册中说:详见皮肤参考文档,不知道从哪里获得此文档?)。
5. 官网上发布的一些插件(比如:adblock plush)使用了mxcmd类型的action。但手册中并没有这方面的描述。
6. 在tab页的脚本运行空间中,无法获得Runtime对象,也无法获得自己的Tab对象,脚本也就无法得知自己是运行在哪一个Tab环境中。
7. 因为上一条的原因,虽然提供了browser.executeScript()方法中,但无法精确地区分每一个Tab,所以只能与当前激活的tab页(tabs.getCurrentTab)做交互。
8. 虽然runtime.onAppEvent事件中能获得action对象,但无法区分具体是哪一个action,(只能获得action的类型type,无法获得名称name)。所以实际上这个机制,仅对那些有唯一action的插件才有用;若插件有多个action,就会混乱了。另外,也无法通过action对象传递附加的用户数据。

另外,这个社区好像不是面向插件开发者的?请问,傲游有没有自己的插件开发社区?

补充内容 (2018-7-3 16:58):
哦,还有一条:
doc_start出口点,感觉应该用于拦截页面的场景,但这个时点dom树尚未创建,也没有提供接口来获取或修改html,所以无法做拦截。

补充内容 (2018-7-3 17:01):
doc_end入口点,虽然可以做拦截,但此时页面已经渲染完毕(img和frame尚未加载),修改了界面元素,页面就会重绘,用户体验很不好。
评论
精彩评论 ( 1条 ) 跳转到指定楼层
您需要登录后才可以回帖 登录 | 加入傲游社区
快速回复 返回顶部 返回列表