27

我一直在使用 jQuery 和 Microsoft Seadragon 技术开发 AJAX 应用程序。
我需要访问 html5 画布函数 toDataURL。

对于谷歌浏览器,同源规则适用于该函数,这意味着本地运行的页面(file:///在 URL 中带有 )未能满足同源规则并引发异常。

使用 Chrome 7,使用--allow-file-access-from-files选项启动应用程序,允许canvas.toDataURL()从本地文件调用。

但是,使用相同选项 ( --allow-file-access-from-files) 启动 Chrome Beta 8 似乎不允许调用canvas.toDataURL()本地文件。

Chrome 是否放弃了该--allow-file-access-from-files选项,或者它只是因为它是 Beta 版本而不是完整版本而被禁用?

谢谢!

4

5 回答 5

46

看看这方面的问题表明整个--allow-file-access-from-files事情都很仓促。

  1. “火狐做到了……”
  2. “我们怎么办?”
  3. 一段时间过去了
  4. “这里是补丁”
  5. “通过!在主干上想知道下一个开发版本会发生什么”
  6. “啊,它坏了” “使用命令行选项” “好的”
  7. “我们发货了!”
  8. “WTF伙计们?你把我的东西都弄坏了!为什么不早点告诉我们?”
  9. 安静

关于您的问题
确实,这似乎是 beta 版的特别之处,我在Chrome 8.0.552.5 dev这里使用并按--allow-file-access-from-files预期工作,我也测试过Chromium 9.0.592.0 (66889)它是否也能按预期工作。

我怀疑 dev 分支上发生了一些变化。不幸的是,在铬的问题跟踪器上找到一些东西几乎是不可能的。

于 2010-11-24T21:08:17.627 回答
22

您是否在使用命令行参数打开之前关闭了所有 chrome 实例?您必须这样做才能使该参数起作用。

于 2011-03-03T17:37:48.710 回答
10

总结到目前为止的所有答案。

在运行 chrome 之前,请确保没有运行 chrome 进程。

视窗

-allow-file-access-from-files

(用一个破折号)

Linux

--allow-file-access-from-files

(有两个破折号)

于 2011-04-29T17:36:32.893 回答
1

我找到了使用 JavaScript/Flash 方法解决此问题的方法。如果 flash 在 Local Only 安全沙箱中编译,则它具有对本地文件的完全访问权限。使用 ExternalInterface,JavaScript 可以请求 Flash 应用程序加载文件,而 Flash 可以将结果传递回 JavaScript。

你可以在这里找到我的实现:https ://code.google.com/p/flash-loader/

于 2011-05-10T01:32:23.247 回答
-1

唤醒我的技巧是您必须在 HTML 代码中提供文件的绝对路径,而不仅仅是文件名。例如 file://... 而不是直接名称,即使您正在访问同一目录中的文件。它会起作用的!

于 2011-06-08T10:11:07.243 回答