0

Safari でページをロードするたびに、個人的に開発した JavaScript コードを実行したいと考えています。Safariのaddblockがこれを行うようです。誰でもこれを行う方法を知っていますか?

Safari は拡張できません。そのためのアドオン フレームワークはありません。しかし、Apple の Webkit と Safari の開発者は、それらを「バイナリ ハック」と呼んで、ユーザーに使用を思いとどまらせていますが、adblock やその他のさまざまなアドオンを利用できます。これらのアドオンの一部は InputManager を使用しているようですが、少なくとも Safari でスクリプトをロードするために人々がそれをどのように使用しているかについては、どこにも文書化されていません。addblock がどのように機能するかを確認するには、バックワード エンジニアリングを行う必要があると思いますが、その前に、ここで聞いてみようと思いました。誰でも知っていますか?

4

1 に答える 1

3

入力マネージャーは、別のアプリケーションのランタイムに任意のコードを挿入するために一般的に (絶対に) 使用される方法です。そこに到達したら、目的の動作を取得する方法を理解するために、アプリケーション自体を十分にリバース エンジニアリングする必要があります。通常、これには、ハッキングしているアプリケーションの一部を置き換えるためのメソッド スウィズリングが含まれます。文書化する API がないため文書化されていませんが、個々の部分 (一般的な入力マネージャーの作成方法、Objective C でのメソッド スウィズリングのしくみ、class-dump などのツールの使用方法) について学習し、すべてを配置できます。一緒。

あなたが説明していることはGreasemonkeyのように聞こえますが、SafariでGreasemonkeyのような動作を有効にするために、少なくとも1つまたは2つのハックが既に存在します. 最初に、それらのいずれかがニーズを満たしているかどうかを確認することをお勧めします。

于 2009-05-10T19:36:35.277 に答える