XUL 的 Javascript 在什么上下文中执行?
-
06-07-2019 - |
题
您为 XUL 组件编写的 javascript 是否可以与网页中定义的 javascript 进行交互?
例如,如果特定网页具有 dooSomethingNeat() 函数,我可以在 XUL 覆盖中定义一个按钮来执行该函数吗?或者它是否位于另一个命名空间中?
换一种方式:如果我想通过自己的代码增强网站的功能,那么编写 Firefox 扩展或使用 Greasemonkey 之类的东西是否更有意义?
解决方案
看 我在这里回答另一个问题.
- 网页代码 做 位于与浏览器代码执行范围分开的“命名空间”中。
- 但这并不意味着您无法从扩展程序访问它。
- 另一方面,目前在内容页面中安全地运行功能并不容易。
- Greasemonkey 脚本(以及普遍存在的脚本,也可以与网页交互)比扩展更容易开发,并且 Greasemonkey 已经实现了所需的安全预防措施,以允许您安全地与网页交互。
- 如果您希望其他人使用您的脚本,将其打包为独立扩展可以降低进入门槛(在另一种情况下,现有 GM 用户可能更喜欢更简单的 GM 脚本而不是单独的扩展)。
因此,如果您可以使用 GM 脚本或普遍存在的脚本来实现您需要执行的操作,我会建议您使用它。至少你可以从它开始,然后当你发现 GM 无法做到的事情时转换为扩展。
如果您需要 Greasemonkey 不支持的功能,或者您只是想尝试创建扩展,那么它也是一个可行的选择。
其他提示
Greasemonkey-to-firefox-extension "编译器"可用,但它不是最新的GM变化。
但是,它确实具有用于页面交互和安全性的基本GM框架,它们都作为独立扩展程序包装,随时可供您修改和扩展。
使用独立扩展程序或GM-script取决于谁将安装此程序。用户群是否愿意安装GreaseMonkey,那么脚本呢?或者仅仅是扩展安装障碍?
GM认证允许使用预先设定的脚本重新打包它,我相信,但目前我找不到这个引用。
不隶属于 StackOverflow