用window.location为什么谷歌会报错,

!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            body{
                margin: 0;
                padding: 0;
            }
        </style>
        <script type="text/javascript" >
           window.onload=function(){
                var canvas=document.getElementById('canvas');
                var context=canvas.getContext('2d');
                context.fillStyle='green';
                context.fillRect(0,0,400,300);
                window.location=canvas.toDataURL('image/jpeg');
            }       
</script>
    </head>
    <body>
        <canvas id="canvas" width="400" height="300"></canvas>        
    </body>
</html>

用火狐打开就是直接一张图像,但是谷歌就报错。图片描述

这是哪里出了错呢。

阅读 3k
3 个回答
新手上路,请多包涵

用location替换window.location

谷歌浏览器貌似已经删除了对navigation支持
这个勉强能做到,但是谷哥刷新就gg。

    window.onload=function(){
                var canvas=document.getElementById('canvas');
                var context=canvas.getContext('2d');
                context.fillStyle='green';
                context.fillRect(0,0,400,300);                  
                 var type = 'image/jpeg';
                var dataurl = canvas.toDataURL(type);              
                var bin = atob(dataurl.split(',')[1]);               
                var buffer = new Uint8Array(bin.length);              
                for (var i = 0; i < bin.length; i++) {
                    buffer[i] = bin.charCodeAt(i);
                }              
                var blob = new Blob([buffer.buffer], {type: type});
                var url = window.URL.createObjectURL(blob);
               window.location = url;
            }  
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题