it-swarm.com.de

Google Chrome - Zugriff auf Dateien aus Chrome-Dateien in Chrome Beta 8 ist deaktiviert

Ich habe eine AJAX - Anwendung unter Verwendung der jQuery- und Microsoft Seadragon-Technologie entwickelt.
Ich brauche Zugriff auf die html5-Canvas-Funktion toDataURL.

Bei Google Chrome gilt für diese Funktion dieselbe Origin-Regel. Dies bedeutet, dass eine lokal ausgeführte Seite (mit file:/// in der URL) dieselbe Origin-Regel nicht erfüllt und eine Ausnahme ausgelöst wird.

Wenn Sie mit Chrome 7 die Anwendung mit der Option --allow-file-access-from-files starten, können Sie canvas.toDataURL() aus lokalen Dateien aufrufen.

Es scheint jedoch, dass das Starten von Chrome Beta 8 mit derselben Option (--allow-file-access-from-files) den Aufruf canvas.toDataURL() für die lokale Datei nicht zulässt. 

Hat Chrome die Option --allow-file-access-from-files aufgegeben, oder wurde es deaktiviert, seit es eine Beta-Version und keine Vollversion ist?

Vielen Dank!

27
Alexandre

Betrachtet man die Probleme dafür zeigt, dass das ganze --allow-file-access-from-files-Ding überstürzt war.

  1. "Firefox macht es .."
  2. "Wie können wir das machen?"
  3. einige Zeit vergeht
  4. "Hier sind die Patches"
  5. "Passes! Am Rumpf fragen, was in der nächsten Dev-Version passiert"
  6. "Ahhh ist kaputt" "Kommandozeilenoption verwenden" "ok"
  7. "Wir haben versandt!"
  8. "WTF-Jungs? Du hast alle meine Sachen kaputt gemacht. Warum hast du es uns nicht früher erzählt?"
  9. Stille

Weiter zu deinem Problem
Es scheint in der Tat, dass dies etwas Besonderes für die Beta ist, ich verwende Chrome 8.0.552.5 dev hier und --allow-file-access-from-files funktioniert wie erwartet, ich habe dies auch mit Chromium 9.0.592.0 (66889) getestet, wenn es auch wie erwartet funktioniert.

Ich vermute, dass es im Dev-Bereich einige Änderungen gab. Leider ist es fast unmöglich, etwas auf dem Chromium Issue Tracker zu finden.

46
Ivo Wetzel

Haben Sie alle Chrome-Instanzen vor dem Öffnen mit dem Befehlszeilenargument geschlossen? Sie müssen das tun, damit dieser Parameter funktioniert.

22
Guillaume86

Alle bisherigen Antworten zusammenfassen.

Stellen Sie vor dem Ausführen von Chrome sicher, dass keine Chromprozesse ausgeführt werden.

Windows

-allow-file-access-from-files

(mit einem Strich)

Linux

--allow-file-access-from-files

(mit zwei Bindestrichen)

10
Vanuan

Ich habe einen Weg gefunden, um das Problem mithilfe eines JavaScript/Flash-Ansatzes zu umgehen. Wenn Flash in der Local Only-Sicherheits-Sandbox kompiliert wird, hat es vollen Zugriff auf lokale Dateien. Mit ExternalInterface kann JavaScript eine Flash-Anwendung zum Laden einer Datei anfordern, und Flash kann das Ergebnis an JavaScript zurückgeben.

Sie finden meine Implementierung hier: https://code.google.com/p/flash-loader/

1
CommissarXiii