20

コードを完全に書き直すことなく、Chrome 拡張機能を他のブラウザに移植する方法はありますか? 私の Chrome 拡張機能は、browser_actionコマンドを使用して、拡張機能ウィンドウで「popup.html」を開きます...

更新: adblockforchrome port.jsを見つけましたが、Safari への移植には多少役立つだけでした...

4

4 に答える 4

5

Appleは、Chrome 拡張機能を Safari にポート変換する方法についていくつかのガイダンスを提供しています。Chrome から Safari でも、Chrome ではできて Safari ではできないことがあり、その逆もあります。

于 2010-08-14T08:58:47.607 に答える
4

拡張機能の種類によって異なりますが、実際にはそうではありません。質問にもっと明確に答えるには、拡張機能の内容を指定する必要があります: 一部のページ (userscripts/userstyles など) を変更する、ブラウザーの機能を拡張するなど。

ただし、このプロセスを簡素化するのに役立ついくつかの移植性に関する注意事項があります。

  1. ブラウザ固有のコードを記述しないでください。一部の最新のブラウザーでは、Web SQL データベース API などの HTML5 機能を使用できます。たとえば、IE でこのような動作をエミュレートすることは困難です。
  2. JavaScript をモジュール化してください。ベンダー固有の JavaScript メソッドを使用しないでください。コードは移植可能になり、TraceMonkey または V8 に依存しなくなります。
  3. HTML を CSS や Javascript から分離し、コードを汚く複雑にしないでください。
于 2010-08-11T17:07:42.743 に答える
4

少し遅れて飛び込みます。

私たちの会社 - Slice Factory (完全な開示はこちら!) はブラウザー拡張機能変換サービスを提供しています: http://gallery.extensionfactory.com/labs/conversion/ ほとんどの場合、Chrome 拡張機能は FF と Safari でシームレスに動作します。

このサービスはまだベータ版の試用版であり、Firefox の変換は Safari のものよりもうまく機能しています。私たちの技術的な解決策を完全に開示することはできませんが、これは SO の答えなので、いくつかの詳細を追加できます。Safari と Firefox のクロム拡張 API のほとんどを模倣する完全な JavaScript API スタックを再開発しました。Firefox では、JetChrome をベースにしています。さらに、ライブラリを追加してマニフェストを書き換えるなど、chrome 拡張機能を再パッケージ化するラッパーがあります。

それを超えて、それはほとんどいくつかの良いアイデア、試行錯誤、そして多くの開発時間です.

例として: Safari 5.1 では Chrome の browser_action に対応するポップアップが導入されましたが、以前のバージョンで機能する代替ソリューションが既にあります。Firefox は HTML5 WebSQL をサポートしていませんが、そのための API があります。また、ウェブアプリを FF に、そしてまもなく Safari に移行する方法も提供します。目的は、Chrome API を参考にして、他のすべてのブラウザーでそれを模倣することです。

私たちのソリューションにあなたを押し付けるわけではありませんが、Safari と Firefox の両方で Chrome API を完全にカバーする時間はおそらく価値がないことを付け加えておきます - いくつかの拡張機能を変換する予定がない限り. したがって、1 つまたは 2 つの拡張機能については、コードをできるだけモジュール化して、3 つの拡張機能を作成するか、または当社のサービスを試すことをお勧めします。

于 2011-09-15T14:18:20.457 に答える