如何为Safari开发插件?

时间:2009-05-10 05:30:20

标签: macos safari add-on

每当我在Safari中加载页面时,我都希望执行一些个人开发的JavaScript代码。看起来像Safari的addblock这样做。有谁知道怎么做?

Safari不可扩展。没有插件框架。但是,虽然Apple的Webkit和Safari开发人员不鼓励用户使用它们,称其为“二进制黑客”,但仍有adblock和其他可用的插件。虽然其中一些插件使用的是InputManager,但在任何地方都没有记录,至少不是因为人们如何使用它来在Safari中加载脚本。我想我将不得不向后工程师看看addblock是如何做到的,但在此之前,我想我会在这里问。有人知道吗?

1 个答案:

答案 0 :(得分:3)

输入管理器是将任意代码注入另一个应用程序运行时的常用(ab)方法。一旦你到了那里,你就必须对应用程序本身进行逆向工程,以弄清楚如何获得你想要的行为;通常涉及方法调配以替换您正在攻击的应用程序的部分。它没有记录,因为没有API来记录,但你可以了解各个部分(如何编写一般的输入管理器,如何在Objective C中运行方法,如何使用类转储等工具)然后将它们全部放入在一起。

你所描述的内容听起来像Greasemonkey,并且已经有至少一两个黑客可以在Safari中启用类似Greasemonkey的行为。我建议先看看其中一个是否符合您的需求。