如何使用我网页上的html按钮调用我的扩展中声明的Javascript函数?
我有一个html页面,里面有一个按钮.当用户单击该按钮时,它将调用我已经在我自己的firefox扩展中声明的函数.
由于您控制网页,所以最简单,最安全的方法就是在网页中调度自定义DOM事件并在扩展代码中监听它:
这是我写的一个示例扩展,它正是这个http://mozilla.doslash.org/cw/(没有更新到最新的Firefox版本,但它很干净,应该很容易更新).
您的Firefox扩展程序在HTML页面的不同Javascript上下文中运行,因此无法直接从HTML页面中的Javascript调用扩展程序.
但是,您可以设计扩展以允许从HTML进行访问.HTML Javascript通常不允许访问Component对象,因此您需要允许HTML代码获取扩展中的对象.为此,请在扩展中创建XPCOM组件,并通过nsICategoryManager对象在"JavaScript全局属性"类别中设置对象.条目名称是从非特权Javascript使用的字符串,该值是XPCOM类的合同ID.
但是,您还需要允许对您的对象进行无特权的Javascript访问,否则脚本安全管理器将阻止访问.为此,实现nsISecurityCheckedComponent - 提供canCreateWrapper(在nsIIDPtr iid中),canCallMethod(在nsIIDPtr iid中,在wstring methodName中),canGetProperty(在nsIIDPtr iid中,在wstring propertyName中)和canSetProperty(在nsIIDPtr iid中,在wstring propertyName中)以返回allAccess对于允许的属性,否则为noAccess.
小心你对用户输入做了什么,以及你允许访问的内容 - 很容易在浏览器中意外地创建一个安全漏洞.
| 归档时间: |
|
| 查看次数: |
6814 次 |
| 最近记录: |