javascript - 有什么办法能用自执行里的变量
天蓬老师
天蓬老师 2017-04-11 09:51:21
[JavaScript讨论组]

我想获取base64 = ss.toDataURL('image/jpeg')输出的值
不过下面自执行的时候变量base64是无法存储到他的值的,
有什么办法解决?

<!DOCTYPE html>
<html>
<head>
</head>
<style type="text/css">
body{text-align:center;}
.showimg{width:200px;height:200px;overflow:hidden;position:relative;margin:100px auto;}
.showimg .imgtest{position:absolute;}
.showimg .a1{top:30px;left:30px;}
.showimg .a2{top:90px;left:120px;}
</style>
<script type="text/javascript" src="jquery.1.9.1.min.js"></script>
<body>
 <canvas id="ss" width="200" height='200'></canvas>
 <p class="showimg">
     <img src='service.jpg' width="200" height="200" />
     <img class="imgtest a1" src='service.jpg' width="20" height="20" />
     <img class="imgtest a2" src='service.jpg' width="20" height="20" />
 </p>

<script type="text/javascript">
    $(function(){
        var showimg = $('.showimg').find('img');
        var ss = document.getElementById('ss');
        var ctx = ss.getContext('2d');
        var base64;
        for(var i = 0; i < showimg.length; i++){

            var offleft = $(showimg[i]).offset().left - showimg.offset().left;
            var offtop  = $(showimg[i]).offset().top  - showimg.offset().top;
            var owidth  = $(showimg[i]).width();
            var oheight = $(showimg[i]).height();

            var images  = new Image();
            images.src  = showimg[i].src;

            (function(a,l,t,w,h){
                images.onload = function(){
                    ctx.drawImage(images,l,t,w,h)
                    base64 = ss.toDataURL('image/jpeg')
                }
            })(i,offleft,offtop,owidth,oheight)
        }
        console.log(base64)//undefined;

    })
</script>
</body>
</html>
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(2)
迷茫

因为你执行 console.log(base64) 的时候,images.onload 事件还没有运行,所以拿不到,很正常啊。

阿神

这和js代码执行顺序有关,执行console.log(base64)的时候,images.onload的事件还没触发,在onload里面传入一个callback。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号