功能需求:
在一个页面里用的高德地图的js,加载页面时候加载地图和自己写的在地图上显示一条路线。这些js执行完成之后,想在最后自动把当前页面整屏接下来,只截图浏览器内的,Windows自带的截图是全屏,不能用,将截图保存到一个文件夹中。 然后关闭这个 页面,所以最好是js可以实现的,有没有大手可以给想想办法啊,谢谢

解决方案 »

  1.   

    过去网页如果需要实现一些特定功能,由于JavaScript及其他脚本语言在操作权限上的限制,功能相对很弱,一般都是通过控件或插件的方式实现,譬如IE的activex控件(http://download.csdn.net/download/wezza5ster/4330851)等等,但这些都会因兼容性问题不是所有类型都可以使用。
    但HTML5标准的出现,使过去只能通过控件实现的方法换由html5+js的方法得以实现,如今除非你的浏览器还停留在ie6版本,其他几乎所有浏览器内核均已支持html5,就像你要的页面截图功能,也可以通过他来实现。
    所以,我给你的结果就是,去搜索“HTML5截屏”或者“HTML5截图”,资源很多,我就不贴链接了,这些方法基本上都是通过HTML5+JS来实现的。
      

  2.   


    function refreshposition() {
                var odiv = $("#cutimg");            $("#<%=hidX.ClientID%>").val(window.screenX + (window.outerWidth - window.innerWidth) / 2 + odiv[0].clientLeft);
                $("#<%=hidY.ClientID%>").val(window.outerHeight - window.innerHeight + window.screenY + odiv[0].clientTop - 7 + 40);
                $("#<%=hidWidth.ClientID%>").val(odiv[0].clientWidth);
                $("#<%=hidHeight.ClientID%>").val(odiv[0].clientHeight - (document.body.scrollHeight - window.innerHeight) - 60);            return true;
            }
    <asp:Button ID="btnCutImg" CssClass="btn-bl" Style="margin-top: 0px; font-size: 14px;" runat="server" Text=" 截 图 " OnClick="btnCutImg_Click" OnClientClick="refreshposition();" />
    int sourceX = Convert.ToInt32(Convert.ToDouble(hidX.Value));
                int sourceY = Convert.ToInt32(Convert.ToDouble(hidY.Value));
                int sizeWidth = Convert.ToInt32(Convert.ToDouble(hidWidth.Value));
                int sizeHeight = Convert.ToInt32(Convert.ToDouble(hidHeight.Value));
                Bitmap _bitMap = new Bitmap(sizeWidth, sizeHeight);
                Graphics g = Graphics.FromImage(_bitMap);
                //从指定的区域中复制图形
                g.CopyFromScreen(sourceX, sourceY, 0, 0, new Size(sizeWidth, sizeWidth));            string movepath = @"C:\SRP_CutImages\";
                if (System.IO.Directory.Exists(movepath) == false)
                {
                    System.IO.Directory.CreateDirectory(movepath);
                }
                //把图形放在PictureBox中显示
                _bitMap.Save(movepath + DateTime.Now.ToString("yyyyMMddHHmmss") + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
                g.Dispose();我用这个方法,基本实现了,但是发布在服务器上的时候会报错。
      

  3.   

    你这个是典型的js截屏技术啊,你这个需要自动实现换是需要什么,推荐使用无头浏览器phantomjs