JQL的JQL执行的上下文是什么?

时间:2009-10-26 21:23:45

标签: javascript firefox-addon xul

您为XUL组件编写的javascript是否可以与网页中定义的javascript进行交互?

例如,如果一个特定的网页有一个dooSomethingNeat()函数,我可以在XUL叠加层中定义一个按钮来执行该函数,还是将它存在于另一个命名空间中?

换句话说:如果我想通过自己的代码来增强网站的功能,那么编写Firefox扩展或使用像greasemonkey这样的东西会更有意义吗?

2 个答案:

答案 0 :(得分:2)

请参阅my answer to another question here

  • 网页代码 位于与浏览器代码执行范围不同的“命名空间”中。
  • 但这并不意味着您无法从扩展程序访问它。
  • 另一方面,此时在内容页面中运行功能并不是很容易安全。
  • Greasemonkey脚本(以及无处不在的脚本,也可以与网页交互)比扩展更容易开发,Greasemonkey已经实现了必要的安全预防措施,允许您安全地与网页进行交互。
  • 如果您希望其他人使用您的脚本,将其打包为独立扩展程序会降低进入门槛(另一种情况是,现有GM用户可能更喜欢更简单的GM脚本到单独的扩展名。)

因此,如果您可以实现您需要对GM脚本或普遍性脚本执行的操作,我会说它。至少你可以从它开始,然后当你找到一些你无法用GM做的事情时转换为扩展名。

如果您需要Greasemonkey不支持的功能,或者您只是想尝试创建扩展,那么它也是一个可行的选择。

答案 1 :(得分:1)

有一个Greasemonkey-to-firefox-extension“编译器”可用,但它与最新的GM变化不一致。

但是,它确实具有用于页面交互和安全性的基本GM框架,它们都作为独立扩展程序包装,随时可供您修改和扩展。

使用独立扩展程序或GM-script取决于谁将安装此程序。用户群是否愿意安装GreaseMonkey,那么脚本呢?或者仅仅是扩展安装障碍?

GM认证允许使用预先设定的脚本重新打包它,我相信,但目前我找不到这个引用。