HTML5 Canvas - origin-clean标志如何设置为false?

时间:2011-02-14 06:14:57

标签: html5 video canvas cross-domain

我开始使用HTML5 Canvas和Video并且我一直遇到这个问题:我尝试演示和实验,但除非我将它们上传到我的网络服务器,否则我无法查看它们。目前这并没有造成太大的问题,因为我正在处理相对较小的文件,但我实际上正在准备一个更大的项目,这个问题会很快变得非常不方便。我也想直截了当地了解我的事实。我一直在使用我自己创建的视频和演示的视频。我使用了很久以前编码的视频,并且在我的代码中使用它们之前,我使用了我编码的视频。它总是相同的结果,使用HTML5视频容器工作,使用Canvas中的视频不会,Canvas只是不显示任何视频(除非我提到,我将它们上传到服务器)。

这是我到目前为止找到的信息:

http://html5doctor.com/video-canvas-magic/

http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#security-with-canvas-elements

(还有一些关于w3的信息,但我不允许发布两个以上的链接)

根据我的理解,我的画布必须受到污染,而且我的文件似乎不是“原产地清洁”,但这是我能够弄清楚的。我不明白为什么。

有没有人对此有更多了解,可以解释这是如何以及为何有效?

1 个答案:

答案 0 :(得分:2)

在浏览器中,从http://加载的任何内容与从file:// URI加载的任何内容之间存在严格的分离。这实际上是非常明智的,否则您从网上加载的随机页面将能够从您的硬盘上读取文件。 apply to file:// URIs themselves还有一些额外的限制,这些限制旨在不让您从网上下载的文件免费运行您的硬盘。

说了这么多,如果您的HTML文件和视频都位于硬盘上的同一目录中,那么一切都应该仍然有效,因为所有这些条件都应该得到满足。

如果您仍然遇到问题,本地开发的一种有用方法是使用轻量级Web服务器。我个人使用Python's SimpleHTTPServer,因为它已经安装在我的机器上,但还有很多其他的 - 通常是内置的Web开发框架(例如Ruby on Rails)。