2

SVG スプライト シート グラフィック ファイルに基づいて CSS を作成する開発ツールを作成しています。このスクリプトは、CSS を /public/css/main.css に書き戻す必要があります。だから、いいえ、私はサンドボックス化されたファイル構造には興味がありません (それは素晴らしいことですが)。

これは本番用ではないことに注意してください。これは、ワークフローを合理化するための単なる開発ツールです (そして、うまくいけば、Web デザイン/開発者コミュニティに利益をもたらします)。--allow-file-access クロム スイッチを調査しましたが、書き込み権限を許可するかどうかはまだわかりません。

だから、私の質問は次のとおりです:ブラウザ内で実行されているjavascriptを使用して、ファイルに文字列を書き込むにはどうすればよいですか? これは製品用ではないことに注意してください。

4

4 に答える 4

0

簡単な答え:

ブラウザのセキュリティ上の制約により、実行できません。

次のようなフラグを追加できます。

--allow-file-access 

ChromeOS では、ホワイトリストに登録された特定のディレクトリを除いて、file:// アクセスが無効になっています。このスイッチは、テストのために file:// を再度有効にします。

--allow-file-access-from-files

デフォルトでは、file:// URI は他の file:// URI を読み取ることができません。これは、テスト用に古い動作が必要な開発者向けのオーバーライドです。

しかし、これらはすべて読むためのものです。あなたがこのアプローチで成功するとは思えません。Mたぶん、に切り替える必要がありますnode.js。そこにファイルを読み書きできます(私は思う)

アップデート

クロムの場合、NaCL-extensionを作成できます。NaCL 拡張の snadbox を無効にするフラグがあります。--allow-nacl-file-handle-api

PS: ブラウザは、ファイルを書き込むのが最も難しいランタイム環境だと思います。理由は次のとおりです。

  1. ファイルAPIはありません(または少なくともありました)
  2. ファイル API はホスト ファイルシステムにアクセスできません
  3. ブラウザの開発者は、サンドボックスを作成するために最善を尽くします。
于 2013-10-18T18:10:48.770 に答える
0

File-System APIを調べてみる価値があるかもしれません。

生成されたファイルは Chrome app-data に保存されます。ファイルシステムの他の場所にあるファイルに書き込むことはできません。ただし、おそらく app-data 内のファイルを取得し、生成後に実行される別のディレクトリにプルするスクリプトで十分でしょうか?

これは現在、ほんの一握りのブラウザーでのみ利用できます。Chrome は確実に含まれています。

于 2013-10-18T19:32:05.743 に答える
0

Chrome/Firefox 拡張機能またはデスクトップ アプリを作成していない場合 (あなたが言ったことから、作成していないと確信しています)、ブラウザーで Javascript を使用してこれを行う方法はありません。このようなものにはサーバー側の言語を使用し、変更をサーバーに直接送信してからクライアントに戻す必要がありますが、それはあなたのニーズに合わないと思います.

于 2013-10-18T19:08:08.097 に答える