Подтвердить что ты не робот

Google Chrome - отключен доступ к файлам для файлов Chrome для бета-версии 8

Я разрабатываю приложение AJAX с использованием технологий jQuery и Microsoft Seadragon.
Мне нужно иметь доступ к функции html5 canvas toDataURL.

В Google Chrome для этой функции применяется одно и то же правило происхождения, что означает, что страница, выполняемая локально (с file:/// в URL-адресе), не удовлетворяет тому же правилу происхождения и генерируется исключение.

В Chrome 7, начиная приложение с параметром --allow-file-access-from-files, позволяет вызывать canvas.toDataURL() из локальных файлов.

Однако, похоже, что запуск бета-версии Chrome 8 с той же опцией (--allow-file-access-from-files) не разрешает вызов canvas.toDataURL() в локальном файле.

Оставил ли Chrome параметр --allow-file-access-from-files или он только что был отключен, так как это бета-версия, а не полная версия?

Спасибо!

4b9b3361

Ответ 1

Рассматривая проблемы для этого, показано, что вся вещь --allow-file-access-from-files была брошена.

  • "Firefox делает это".
  • "Как мы можем это сделать?"
  • некоторое время проходит
  • "Вот патчи"
  • "Проходит! На сундуке интересно, что происходит в следующем выпуске dev"
  • "О, это сломано" "Используйте параметр командной строки" "ok"
  • "Мы отправили!"
  • "Ребята из WTF, вы сломали все мои вещи! Почему вы не сказали нам раньше?"
  • Молчание

В ответ на вашу проблему
Действительно, кажется, что это что-то особенное для бета-версии, я использую Chrome 8.0.552.5 dev здесь, а --allow-file-access-from-files работает, как и ожидалось, я также тестировал это с помощью Chromium 9.0.592.0 (66889), если он также работает как ожидалось.

Я подозреваю, что произошли некоторые изменения в ветки dev. К сожалению, найти что-то на хромовом трекере почти невозможно.

Ответ 2

Вы закрыли все экземпляры chrome перед открытием с помощью аргумента командной строки? Вы должны сделать это, чтобы этот параметр работал.

Ответ 3

Подводя итог всем ответам до сих пор.

Перед запуском chrome убедитесь, что процессы chrome не запущены.

Окно

-allow-file-access-from-files

(с одной тире)

Linux

--allow-file-access-from-files

(с двумя штрихами)

Ответ 4

Я нашел способ решить проблему с использованием подхода JavaScript/Flash. Если Flash компилируется в изолированной программной среде Local Only, он имеет полный доступ к локальным файлам. Используя ExternalInterface, JavaScript может запросить приложение Flash для загрузки файла, а Flash может передать результат обратно JavaScript.

Вы можете найти мою реализацию здесь: https://code.google.com/p/flash-loader/

Ответ 5

Трюк, который завопил для меня, заключается в том, что вы должны указать абсолютный путь файла, а не просто имя файла в своем HTML-коде. например file://... вместо прямого имени, даже если вы обращаетесь к файлу в том же каталоге. Он будет работать!