27

jQuery と Microsoft Seadragon テクノロジを使用して AJAX アプリケーションを開発しています。
html5 キャンバス関数 toDataURL にアクセスする必要があります。

Google Chrome では、同じオリジン ルールがこの関数に適用されます。つまり、ローカルで実行されるページ ( file:///URL に が含まれる) が同じオリジン ルールを満たさず、例外がスローされます。

Chrome 7 では、オプションでアプリケーションを起動すると、ローカル ファイル--allow-file-access-from-filesから呼び出すことができます。canvas.toDataURL()

ただし、同じオプション ( ) で Chrome Beta 8 を起動すると、ローカル ファイルで --allow-file-access-from-filesの呼び出しが許可されないようです。canvas.toDataURL()

Chrome はこのオプションをあきらめたの--allow-file-access-from-filesですか、それとも完全なリリースではなくベータ リリースであるため無効になったのですか?

ありがとう!

4

5 に答える 5

46

これの問題を見ると、すべて--allow-file-access-from-filesが急いでいたことがわかります。

  1. 「Firefoxはそれをします..」
  2. 「どうすればいいの?」
  3. 時間が経つ
  4. 「ここにパッチがあります」
  5. 「パス!トランクで、次の開発リリースで何が起こるのだろうか」
  6. 「ああ、壊れてる」「コマンドラインオプションを使え」「OK」
  7. 「発送しました!」
  8. 「なんてこった?あなたは私のものをすべて壊したのです!なぜもっと早く私たちに言わなかったのですか?」
  9. 沈黙

あなたの問題
について確かに、これはベータ版にとって特別なもののようです。私はChrome 8.0.552.5 devここで使用しており--allow-file-access-from-files、期待どおりに動作します。これもテストしましたChromium 9.0.592.0 (66889)が、期待どおりに動作します。

開発ブランチにいくつかの変更があったと思われます。残念ながら、クロムの問題トラッカーで何かを見つけることはほとんど不可能です。

于 2010-11-24T21:08:17.627 に答える
22

コマンドライン引数で開く前に、すべてのchromeインスタンスを閉じましたか?そのパラメータを機能させるには、それを行う必要があります。

于 2011-03-03T17:37:48.710 に答える
10

これまでのすべての回答を要約します。

chrome を実行する前に、実行中の chrome プロセスがないことを確認してください。

ウィンドウズ

-allow-file-access-from-files

(一点ダッシュ付き)

Linux

--allow-file-access-from-files

(ダッシュ 2 つ)

于 2011-04-29T17:36:32.893 に答える
1

JavaScript/Flash アプローチを使用して、この問題を回避する方法を見つけました。フラッシュがローカルのみのセキュリティ サンドボックスでコンパイルされている場合、フラッシュはローカル ファイルに完全にアクセスできます。ExternalInterface を使用すると、JavaScript は Flash アプリケーションにファイルをロードするよう要求でき、Flash はその結果を JavaScript に返すことができます。

ここで私の実装を見つけることができます: https://code.google.com/p/flash-loader/

于 2011-05-10T01:32:23.247 に答える
-1

私が目覚めた秘訣は、HTMLコードのファイル名だけでなく、ファイルの絶対パスを指定する必要があることです。たとえば、同じディレクトリ内のファイルにアクセスしている場合でも、直接名の代わりにfile://...を使用します。それが動作します!

于 2011-06-08T10:11:07.243 に答える