2010-11-24 6 views
26

Ich habe eine AJAX-Anwendung mit jQuery und Microsoft Seadragon-Technologie entwickelt.
Ich brauche Zugriff auf die HTML5-Canvas-Funktion toDataURL.Google Chrome --allow-Datei-Zugriff-von-Dateien deaktiviert für Chrome Beta 8

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

Mit Chrome 7, starten Sie die Anwendung mit --allow-file-access-from-files Option, ermöglicht canvas.toDataURL() von lokalen Dateien aufrufen.

Es scheint jedoch, dass das Starten der Chrome Beta 8 mit der gleichen Option (--allow-file-access-from-files) den Aufruf canvas.toDataURL() in der lokalen Datei nicht zulässt.

Gibt Chrome die Option --allow-file-access-from-files auf oder wurde sie gerade deaktiviert, da es sich um eine Beta-Version und nicht um eine vollständige Version handelt?

Danke!

+0

Sie finden den Detailbeitrag hier auf [chrome --allow-file-access-from-files] (http://www.chrome-allow-file-access-from-file.blogspot.com/) -Option zu lösche deine Anfrage. – user3351283

Antwort

46

Looking at the issues for this zeigt, dass die ganze --allow-file-access-from-files Sache wurde gehetzt.

  1. "Firefox tut es .."
  2. "Wie können wir das tun?"
  3. einige Zeit vergeht
  4. „Hier sind die Patches“
  5. „Pässe! Am Stamm fragen, was in der nächsten dev Release geschieht“
  6. „Ahhh, es ist gebrochen“ „Verwenden Sie die Befehlszeilenoption“ " ok "
  7. " Wir versandt! "
  8. "WTF Jungs? Sie haben alle meine Sachen gebrochen! Warum haben Sie uns das nicht schon früher erzählt?"
  9. Stille

On zu Ihrem Problem
der Tat scheint es, dass dies etwas mit dem Beta Besonderes, ich bin Chrome 8.0.552.5 dev hier und --allow-file-access-from-files funktioniert wie erwartet mit, ich habe dies auch getestet mit Chromium 9.0.592.0 (66889) war es auch wie erwartet funktioniert.

Ich vermute, es gab einige Änderungen auf dem Dev-Zweig. Leider ist es fast unmöglich, etwas über den Problem-Tracker von Chrom zu finden.

+20

+1 Für den Komödiantenfaktor. – flu

+1

Wie können Sie die '--allow-Datei-Zugriff-von-Dateien'-Sache machen? Ich verstehe nicht wirklich, wie das funktioniert. – Aerovistae

+1

@Aerovistae, A. Öffnen Sie die Eigenschaften Ihrer Chrome-Verknüpfung, fügen Sie diese zum Ziel hinzu: '" ... \ chrome.exe --allow-file-access-from-file "' (beachten Sie die Anführungszeichen) || B. Führen Sie Chrome über die Eingabeaufforderung mit dem Tag "... \ chrome.exe --allow-Dateizugriff aus Datei" –

22

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

+2

Wow, ich habe alles versucht und dann ist das der Trick, der es für mich reparierte – BlueMonkMN

+0

Ich mag das nicht.Können Sie das umgehen, indem Sie es zwingen, in einem neuen Fenster zu spawnen? – jrsconfitto

+2

Sie kann versuchen, aber es hat nicht funktioniert letztes Mal, als ich versuchte – Guillaume86

10

Um alle Antworten bisher zusammenzufassen.

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

Windows-

-allow-file-access-from-files 

(mit einem Bindestrich)

Linux

--allow-file-access-from-files 

(mit zwei Strichen)

+0

Das + schließen aller geöffneten Fenster war die einzige Möglichkeit, wie es auf Windows funktionierte. – dtroy

+3

Unter Windows funktionieren nur zwei Striche für mich. –

+0

Das gleiche hier. Ein Strich gab Fehler. Zwei Bindestriche macht den Trick –

1

Ich habe einen Weg, um die gefunden Ausgabe mit a JavaScript/Flash-Ansatz. Wenn Flash in der Sicherheits-Sandbox "Nur lokal" kompiliert wird, hat es vollen Zugriff auf lokale Dateien. Mit ExternalInterface kann JavaScript eine Flash-Anwendung dazu veranlassen, eine Datei zu laden, und Flash kann das Ergebnis an JavaScript übergeben.

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

+1

Gute Abhilfe aber gibt eine sehr schlechte Abhängigkeit von Flash –

-1

Der Trick, der für mich woked ist, dass Sie den absoluten Pfad der Datei zu geben und nicht nur Namen in Ihrem HTML-Code-Datei. z. B. Datei: // ... anstelle des direkten Namens, obwohl Sie auf die Datei im selben Verzeichnis zugreifen. Es wird klappen!

+0

Ich habe das versucht und es hat in meinem Fall nicht funktioniert. –

+1

Nicht sicher, welche Version von chrome aber 27 den folgenden Fehler gibt: "Cross-Ursprungsanforderungen werden nur für HTTP unterstützt." – Rob