使用html2canvas进行屏幕捕获

时间:2011-08-16 06:17:07

标签: jquery ajax canvas

我从另一个班级打电话给screenView()。我可以打电话给它,但我没有得到strDataURI。我做错了什么?

       function screenView(){
            var image;

             var date = new Date();
             var message,
             timeoutTimer,
             timer;

             var proxyUrl = "http://html2canvas.appspot.com";
             var iframe,d;

             $(this).prop('disabled',true);
             var url = "http://www.facebook.com/google";

             var urlParts = document.createElement('a');
             urlParts.href = url;

             $.ajax({
                 data: {
                     xhr2:false,
                     url:urlParts.href

                 },
                 url: proxyUrl,
                 dataType: "jsonp",
                 success: function(html){


                     iframe = document.createElement('iframe');

                     $(iframe).css({
                         'visibility':'hidden'
                     }).width($(window).width()).height($(window).height());
                     $('#content').append(iframe);

                    d = iframe.contentWindow.document; 
                    alert("d-----"+d);
                     d.open();

                        $(iframe.contentWindow).unbind('load');
                         alert("inside>>"+ $(iframe).contents().find('body'));
                     $(iframe).contents().find('body').html2canvas({
                         canvasHeight: d.body.scrollHeight,
                         canvasWidth: d.body.scrollWidth,
                         logging:true

                     }); 
                     alert("inside before load view");
                     $(iframe.contentWindow).load(function(){

                         alert("inside view");

                         $(iframe).contents().find('body').html2canvas({
                             canvasHeight: 30,
                             canvasWidth: 10,
                             logging:true,
                             proxyUrl: proxyUrl,
                             logger:function(msg){
                                 $('#logger').val(function(e,i){
                                     return i+"\n"+msg;
                                 });

                             },
                             ready: function(renderer) {
                                 alert("in side ready renderer");
                                 $('button').prop('disabled',false);
                                 $("#content").empty();               
                                 var finishTime = new Date();
                                     var strDataURI = renderer.canvas.toDataURL("image/jpeg"); 
                                     image = strDataURI

                                     alert("last"+strDataURI);
                                     d.close();
                             }

                         });

                     });



                 }


             });
             return image;

        }

1 个答案:

答案 0 :(得分:4)

为什么不试试这个:http://hertzen.com/experiments/jsfeedback/

这个例子对我有用