2010-11-24 10 views
26

He estado desarrollando una aplicación AJAX utilizando tecnología jQuery y Microsoft Seadragon.
Necesito tener acceso a la función de lienzo html5 para DataURL.Google Chrome - allow-file-access-from-files deshabilitado para Chrome Beta 8

Con Google Chrome, la misma regla de origen se aplica a esta función, lo que significa que una página ejecutada localmente (con file:/// en la URL) no cumplió con la misma regla de origen y se lanzó una excepción.

Con Chrome 7, al iniciar la aplicación con la opción --allow-file-access-from-files, permite llamar al canvas.toDataURL() desde archivos locales.

Sin embargo, parece que al iniciar Chrome Beta 8 con la misma opción (--allow-file-access-from-files) no se permite la llamada canvas.toDataURL() en el archivo local.

¿Chrome renunció a la opción --allow-file-access-from-files o se acaba de desactivar, ya que se trata de una versión Beta y no de una versión completa?

Gracias!

+0

Puede encontrar la publicación de detalles aquí en [chrome --allow-file-access-from-files] (http://www.chrome-allow-file-access-from-file.blogspot.com/) opción para resolver su consulta – user3351283

Respuesta

46

Looking at the issues for this muestra que toda la cosa --allow-file-access-from-files fue apresurada.

  1. "Firefox lo hace .."
  2. "¿Cómo podemos hacerlo?"
  3. algún tiempo pasa
  4. "Éstos son los parches"
  5. "pases! En el tronco se preguntan lo que sucede en la próxima versión dev"
  6. "Ahhh se ha roto" "Use la opción de línea de comandos" " ok "
  7. " ¡Hemos enviado! "
  8. "¿Fieles WTF? Rompieron todas mis cosas! ¿Por qué no nos dijeron antes?"
  9. silencio

On para su problema
De hecho, parece que esto es algo especial para la beta, estoy usando Chrome 8.0.552.5 dev aquí y --allow-file-access-from-files obras como era de esperar, también he probado esto con Chromium 9.0.592.0 (66889) si también funciona como se esperaba.

Sospecho que ha habido algunos cambios en la rama de desarrollo. Desafortunadamente, encontrar algo en el rastreador de problemas de cromo es casi imposible.

+20

+1 Por el factor de la comedia. – flu

+1

¿Cómo se puede hacer la cosa '--allow-file-access-from-files'? Realmente no entiendo cómo funciona eso. – Aerovistae

+1

@ Aerovistae, A. abre tus propiedades de atajo de Chrome, agrégalas al destino: '" ... \ chrome.exe --allow-file-access-from-file "' (fíjate en las comillas) || B. usando el Símbolo del sistema, ejecute Chrome con la etiqueta '... \ chrome.exe --allow-file-access-from-file' –

22

¿Cerró todas las instancias de Chrome antes de abrir con el argumento de línea de comando? Tienes que hacer eso para que ese parámetro funcione.

+2

Wow, estaba intentándolo todo y este es el truco que lo solucionó. – BlueMonkMN

+0

no me gusta eso. ¿Puede evitar esto forzándolo a engendrar en una nueva ventana? – jrsconfitto

+2

Usted puedo probar pero no funcionó la última vez que probé – Guillaume86

10

Para resumir todas las respuestas hasta el momento.

Antes de ejecutar chrome, asegúrese de que no haya procesos chrome en ejecución.

de Windows

-allow-file-access-from-files 

(con un guión)

Linux

--allow-file-access-from-files 

(con dos guiones)

+0

Esto + cerrar todas las ventanas abiertas fue la única forma en que funcionó en Windows. – dtroy

+3

En Windows, solo dos guiones funcionan para mí. –

+0

Igual aquí. Un guión dio errores. funciona el truco –

1

he encontrado una forma de evitar la problema usando un JavaScript/enfoque Flash. Si el flash se compila en el entorno limitado de seguridad Solo local, tiene acceso completo a los archivos locales. Al utilizar ExternalInterface, JavaScript puede solicitar una aplicación Flash para cargar un archivo y Flash puede pasar el resultado a JavaScript.

Puede encontrar mi aplicación aquí: https://code.google.com/p/flash-loader/

+1

Buena solución pero da una muy mala dependencia de flash –

-1

El truco que woked para mí es que usted tiene que dar la ruta absoluta del archivo y no sólo nombre del archivo en el código HTML. por ejemplo, archivo: // ... en lugar de nombre directo a pesar de que está accediendo al archivo en el mismo directorio. ¡Funcionará!

+0

intenté y no funcionó en mi caso. –

+1

No estoy seguro de qué versión de cromo, pero 27 da el siguiente error: "Las solicitudes de origen cruzadas solo son compatibles con HTTP". – Rob