如何允许WebGL从本地载入资源
2014-02-26 20:07
295 查看
随着mono-design不断推广,用户越来越多,陆续有电话来询问“为什么3D展现的时候,是一团黑?”,针对这个问题,专门写个帖子说明原因并给出解决方案,并且在mono-design编辑器中加了判断功能,同时链接到这里,不用等到发现一团黑时,才知道出问题。
好了,言归正传,开始分析问题:
当发现3D展现是一团黑的时候,在控制台如果看到“Unable to get image data from canvas because the canvas has been tainted by cross-origin data.”的错误提示,这是因为浏览器的安全策略,“同源策略”。浏览器为了阻止欺骗,会追踪 image data。当你把一个“跟canvas的域不同的”图片放到canvas上,这个canvas就成为 “tainted”(被污染的,脏的),浏览器就不让你操作该canvas 的任何像素。
这个问题有两种解决方案
方案一:有服务器环境,将项目部署在web服务器上,最简单的tomcat。
方案二:设置浏览器
On Windows:
Chrome:
1、得到Chrome的安装路径,例如:‘C:\Users\-your-user-name\AppData\Local\Google\Chrome\Application>’
2、在命令行窗口,输入安装路径,加上–allow-file-access-from-files参数,例如:‘C:\Users\your-user-name\AppData\Local\Google\Chrome\Application>\chrome.exe –allow-file-access-from-files’,回车执行,启动Chrome
3、测试的一个临时方法::复制一个Chrome的快捷方式,右键》属性》目标的文本框中加上参数–allow-file-access-from-files,例如:”C:\Program Files (x86)\Google\Chrome\Application\chrome.exe” –allow-file-access-from-files
Firefox,IE:默认可以加载本地图片
On Mac:
Chrome:从命令行窗口中启动,启动命令为open /Applications/Google\ Chrome.app –args –allow-file-access-from-files
Safari:
1、Safari》偏好设置》高级》勾选“在菜单栏中显示‘开发’菜单”
2、开发》勾选“启用WebGL”
3、开发》勾选“停用本地文件限制”
Firefox:默认可以加载本地图片
好了,言归正传,开始分析问题:
当发现3D展现是一团黑的时候,在控制台如果看到“Unable to get image data from canvas because the canvas has been tainted by cross-origin data.”的错误提示,这是因为浏览器的安全策略,“同源策略”。浏览器为了阻止欺骗,会追踪 image data。当你把一个“跟canvas的域不同的”图片放到canvas上,这个canvas就成为 “tainted”(被污染的,脏的),浏览器就不让你操作该canvas 的任何像素。
这个问题有两种解决方案
方案一:有服务器环境,将项目部署在web服务器上,最简单的tomcat。
方案二:设置浏览器
On Windows:
Chrome:
1、得到Chrome的安装路径,例如:‘C:\Users\-your-user-name\AppData\Local\Google\Chrome\Application>’
2、在命令行窗口,输入安装路径,加上–allow-file-access-from-files参数,例如:‘C:\Users\your-user-name\AppData\Local\Google\Chrome\Application>\chrome.exe –allow-file-access-from-files’,回车执行,启动Chrome
3、测试的一个临时方法::复制一个Chrome的快捷方式,右键》属性》目标的文本框中加上参数–allow-file-access-from-files,例如:”C:\Program Files (x86)\Google\Chrome\Application\chrome.exe” –allow-file-access-from-files
Firefox,IE:默认可以加载本地图片
On Mac:
Chrome:从命令行窗口中启动,启动命令为open /Applications/Google\ Chrome.app –args –allow-file-access-from-files
Safari:
1、Safari》偏好设置》高级》勾选“在菜单栏中显示‘开发’菜单”
2、开发》勾选“启用WebGL”
3、开发》勾选“停用本地文件限制”
Firefox:默认可以加载本地图片
相关文章推荐
- 如何允许WebGL从本地载入资源
- 如何允许WebGL从本地载入资源
- 如何允许WebGL从本地载入资源(ajax的post请求返回error函数而不到success)
- 如何允许WebGL从本地载入资源
- 【chrome】设置chrome允许WebGL从本地载入资源
- VB中如何把资源器的文件释放出来,并且允许。。如把1.bat载入资源编辑器
- git删除本地的资源,如何恢复?
- VS2008 VC 如何把图片等资源文件通过本地路径加载方式加载
- Android 如何读取本地图片或者资源图片并自定义大小
- 如何产生签名applet能让applet能够访问本地资源
- 从本地拖资源到远程桌面上如何设置
- Flex快速入门系列之五:crossdomain.xml文件创建以及允许本地跨域访问远程资源
- 如何应用程序中载入其他域的swf文件,并且允许它访问程序中的 ActionScript
- 如何用maven 手动把本地jar安装到本地仓库和将本地项目打包并安装到本地资源仓库
- WebView 如何能同时载入网上的和本地的文件
- 如何下载会议论文集?如何将整个网站的资源离线到本地?
- WebGL如何解决中文文字载入
- 如何用maven 手动把本地jar安装到本地仓库和将本地项目打包并安装到本地资源仓库
- Unity3d导出的webGL文件如何在本地上配置进行调试
- nodejs构建本地web测试服务器 如何解决访问静态资源问题