Chromeでは、読み込む必要のあるすべてのローカルファイルを保持する拡張機能を作成できます。chrome-extension://...
代わりにを介してファイルにアクセスできるようになりますfile://...
manifest.json
新しいフォルダに名前の付いたファイルを作成し、次のように入力します。
{
"name": "File holder",
"manifest_version": 2,
"version": "1.0",
"web_accessible_resources": ["test.js", "other.js", "yetanother.js"]
}
次に、ロードするすべてのスクリプトをその新しいディレクトリに配置し、それらがweb_accessbile_reources
マニフェストリストに含まれていることを確認します。chrome://extensions
に移動し、を有効Developer Mode
にして、で新しいフォルダを選択することにより、拡張機能をロードしますLoad unpacked extension...
。
これで、を使用して拡張ディレクトリ内のすべてのファイルにアクセスできます。chrome-extension://[app_id]/[file_name]
ここで、「app_id
」はページ上の拡張機能に対してリストされているハッシュchrome://extensions
です。プロトコルとホスト名は実際の作業を行っている場所とは異なるため(拡張フォルダーですべての開発を行うことにした場合を除きます。これは許容できる場合があります)、拡張リソースはクロスドメインであり、<script>
タグを介してロードされます。
これで、コンソールから次のことができます。
var s = document.createElement("script");
s.src = "chrome-extension://aefigdoelbemgaedgkcjpcnilbgagpcn/test.js";
document.body.appendChild(s);
test.js
(ファイルがであり、アプリIDがであると仮定しますaefigdoelbemgaedgkcjpcnilbgagpcn
。)
入力するのはかなり難しいですが、おそらくそのchrome-extension://[app_id]
部分を省略形の変数として格納できますか?