0

每当我在 Safari 中加载页面时,我希望执行一些个人开发的 JavaScript 代码。似乎 Safari 的 addblock 可以做到这一点。有人知道怎么做吗?

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

4

1 回答 1

3

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

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

于 2009-05-10T19:36:35.277 回答