SECURITY_ERR:DOM Exception 18:canvas getImageData putImageData问题

1     var contextMap = canvasMap.getContext('2d');

2     var imagedataMap=contextMap.getImageData(0,0,canvasMap.width,canvasMap.height);

3     var contextPrint = canvasPrint.getContext('2d');

4     contextPrint.putImageData(imagedataMap, 0, 0); 

      在本地运行这段代码时,就会报SECURITY_ERR:DOM Exception 18错误, 至于原因,因为本地测试用的图片是文件夹内的,也有可能是一个url,js跨域限制是不能获取非同一域名下的数据的,而本地的位置是没有域名的,url是非同一域名的,所以浏览器都认为你是跨域了,才会报错。 如果一定要测试这个代码,解决办法就是在服务器上运行这段代码,比如说tomcat,使用localhost访问则可以。

    此外: // Firefox 下如果要读取本地文件,可以去掉下面这行代码的注释、解决firefox跨域访问的问题
    //netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");

 弹出对话框的时候选择allow,并要求记住选择,之后就再也不弹出对话框了,有什么方法可以让他再次弹出对话框?修改~/.Mozilla 目录里的prefs.js文件内容,去掉相关设置就可以了。 后者是在网上查询的资料。没有验证,上面代码在ff上面也有这个问题了。

 

 

你可能感兴趣的:(exception)