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

例如,如果特定网页具有 dooSomethingNeat() 函数,我可以在 XUL 覆盖中定义一个按钮来执行该函数吗?或者它是否位于另一个命名空间中?

换一种方式:如果我想通过自己的代码增强网站的功能,那么编写 Firefox 扩展或使用 Greasemonkey 之类的东西是否更有意义?

有帮助吗?

解决方案

我在这里回答另一个问题.

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

因此,如果您可以使用 GM 脚本或普遍存在的脚本来实现您需要执行的操作,我会建议您使用它。至少你可以从它开始,然后当你发现 GM 无法做到的事情时转换为扩展。

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

其他提示

Greasemonkey-to-firefox-extension "编译器"可用,但它不是最新的GM变化。

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top