私は拡張機能開発の初心者です。Webページにコードを挿入できる拡張機能を作成しようとしています。私はグーグルクロームコンテンツスクリプトを使用してこれを行おうとしています。しかし、私はfacebook.comまたはgoogle.comでこれを行うことができませんでした。yahoo.comで動作しているようです。これには理由がありますか?どうすればこれを回避できますか?
2 に答える
私の拡張機能の1つであるFacebookFriendExporterで、これを実行しました。お気軽にご覧ください。Facebookを使用して友達の連絡先情報(メールを含む)を取得し、新しい連絡先としてGmailにエクスポートします。それにはあなたと同じようなグーグルとフェイスブックからの許可が必要です。
FacebookまたはGoogleにコードを挿入する必要があるため、コンテンツスクリプトを使用する必要があります。コンテンツスクリプトを使用すると、WebページのコンテキストでJavaScriptコードを実行できます。標準のDOMを使用して、そのWebページからコンテンツを抽出/読み取り、変更を加えることができます。
マニフェスト.jsonでは、次のように定義する必要があります。
{
"name": "My extension",
...
"content_scripts": [
{
"matches": ["http://*.google.com/*", "http://*.facebook.com/*"],
"css": ["injected_styles.css"],
"js": ["injected_script.js"],
"all_frames": true
}
],
...
}
一致のパターンの詳細については、一致パターンのドキュメントを参照してください。コンテンツスクリプトの上位一致では、「。com」ドメインにのみ挿入できることを忘れないでください。それを考慮に入れてください。より多くの一致ドメインが必要な場合は、それらを1つずつ入力する必要があります。(これには問題があることはわかっていますが、セキュリティ上の理由からです)
Google Mail(gmail)のような複雑なWebサイトの場合、通常はiframeを使用してDOMを表します。そのため、「all_frames:true」を配置しました。これは、コンテンツスクリプトを、トップフレームだけでなく、ページのすべてのフレームで実行するためです。
お役に立てば幸いです。
コンテンツスクリプトを使用して、任意のWebサイトにコードを挿入できます。マニフェスト.jsonファイルのmatchesタグに「facebook.com」または「google.com」が含まれていることを確認してください