2010-11-24 1 views
26

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

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

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

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

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

Спасибо!

+0

Подробное сообщение можно найти здесь [chrome --allow-file-access-from-files] (http://www.chrome-allow-file-access-from-file.blogspot.com/) для разрешите ваш запрос. – user3351283 2014-02-26 07:15:41

ответ

46

Looking at the issues for this показывает, что все было отправлено в --allow-file-access-from-files.

  1. "Firefox делает это .."
  2. "Как мы можем это сделать?"
  3. проходит некоторое время
  4. «Вот заплаты»
  5. «Пропуск! На стволе интересно, что происходит в следующей версии Dev»
  6. «Ааа она сломана» «Используйте параметр командной строки» " ok "
  7. " Мы отправили! "
  8. «Ребята из WTF, вы сломали все мои вещи, почему вы не сказали нам раньше?»
  9. молчание

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

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

+20

+1 Для комедийного фактора. – flu 2013-04-12 13:19:09

+1

Как вы можете делать «-allow-file-access-from-files»? Я действительно не понимаю, как это работает. – Aerovistae 2013-08-28 00:18:22

+1

@Aerovistae, A. откройте свойства ярлыка Chrome, добавьте это к цели: `... ... \ chrome.exe --allow-file-access-from-file" `(обратите внимание на кавычки) || B. с помощью командной строки запустите Chrome с тегом `... \ chrome.exe --allow-file-access-from-file` – 2015-01-19 10:55:00

22

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

+2

Wow, я все пытался, а затем это трюк, который исправил его для меня. – BlueMonkMN 2011-10-30 15:11:07

10

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

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

Окна

-allow-file-access-from-files 

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

Linux

--allow-file-access-from-files 

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

1

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

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

-1

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