12

開発の目的で、コンソールにコピーアンドペーストするのではなく、ローカルに保存されたスクリプトをブラウザに簡単にロードできるようにしたいと思います。

新しい<script>要素の作成が機能せず、Not allowed to load local resource: file://....エラーが発生します(Chromeの場合)。

また、ユーザースクリプトの作成は機能しません。編集するたびに、ユーザースクリプトを再インストールする必要があります。

ブックマークレットなどを介してローカルスクリプトを簡単にロードする別の方法はありますか?

4

5 に答える 5

26

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]部分を省略形の変数として格納できますか?

于 2012-05-16T05:04:05.297 に答える
2

残念ながら、ChromeではAJAXを介してローカルファイルをロードすることはできません。ただし、フラグを付けてブラウザを起動することで、この制限を回避できます--disable-web-security(詳細はホストオペレーティングシステムごとに異なります)。

于 2012-05-16T05:09:12.603 に答える
1

chromeを次のように実行します: chrome.exe --allow-file-access-from-files CLIから

于 2021-07-03T07:39:39.837 に答える
0

ローカルhttpサーバーを実行する必要があります

これはこれに適したドキュメントです。

https://developer.mozilla.org/en-US/docs/Learn/Common_questions/set_up_a_local_testing_server

于 2020-03-23T13:52:46.870 に答える
-1

ページからjsファイルへの相対パスを試しましたか...

src='/ js / javascript.js'

于 2012-05-16T05:03:58.457 に答える