javascript – Html2canvas:facebook插件评论

我有一个使用facebook插件评论的网站.我正在寻找一种方法在屏幕截图中包含这些评论.如果我使用简单的html2canvas,我会得到一个空白框而不是它们.所以我尝试使用html2canvasproxy但现在它打印一些 javascript控制台日志而不是facebook评论.

它应该像但我得到.我注意到html2canvasproxy.php正确保存了facebook插件html.

我在控制台日志中找不到任何javascript错误.

我使用以下代码截取屏幕截图:

html2canvas(document.body,{
    "logging": true,//Enable log (use Web Console for get Errors and Warnings)
    "proxy":"js/html2canvasproxy.php","onrendered": function(canvas) {
        var img = new Image();
        img.onload = function() {
            img.onload = null;
            document.body.appendChild(img);
        };
        img.onerror = function() {
            img.onerror = null;
            if(window.console.log) {
                window.console.log("Not loaded image from canvas.toDataURL");
            } else {
                alert("Not loaded image from canvas.toDataURL");
            }
        };
        img.src = canvas.toDataURL("image/png");
    }
});

我在html2canvasproxy.php中有这个设置:

//Turn off errors because the script already own uses "error_get_last"
error_reporting(0);

//setup
define('JSLOG','console.log'); //Configure alternative function log,eg. console.log,alert,custom_function
define('PATH','../screenshots');//relative folder where the images are saved
define('CCACHE',60 * 5 * 1000);//Limit access-control and cache,define 0/false/null/-1 to not use "http header cache"
define('TIMEOUT',30);//Timeout from load Socket
define('MAX_LOOP',10);//Configure loop limit for redirect (location header)
define('CROSS_DOMAIN',0);//Enable use of "data URI scheme"

//constants
define('EOL',chr(10));
define('WOL',chr(13));
define('GMDATECACHE',gmdate('D,d M Y H:i:s'));

解决方法

我在阅读时得到的第一个想法是包括一些超时 – 等待一段时间(让我们说200毫秒) – 这样你就有更多的机会加载.

但是在插件网站上阅读之后:“该脚本允许您直接在用户浏览器上截取网页或部分网页的”屏幕截图“.截图基于DOM,因此可能不是真实的100%准确表示,因为它不会制作实际的屏幕截图,但会根据页面上提供的信息构建屏幕截图.“它无能为力.

我个人会调查使用另一种解决方案 – 例如PhantomJS

“PhantomJS是一个带有JavaScript API的无头WebKit脚本.它具有对各种Web标准的快速和原生支持:DOM处理,CSS选择器,JSON,Canvas和SVG.”

这很容易:

var page = require('webpage').create();
page.open('http://github.com/',function() {
  page.render('github.png');
  phantom.exit();
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


kindeditor4.x代码高亮功能默认使用的是prettify插件,prettify是Google提供的一款源代码语法高亮着色器,它提供一种简单的形式来着色HTML页面上的程序代码,实现方式如下: 首先在编辑器里面插入javascript代码: 确定后会在编辑器插入这样的代码: <pre
这一篇我将介绍如何让kindeditor4.x整合SyntaxHighlighter代码高亮,因为SyntaxHighlighter的应用非常广泛,所以将kindeditor默认的prettify替换为SyntaxHighlighter代码高亮插件 上一篇“让kindeditor显示高亮代码”中已经
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面
如何用js控制图片放大缩小
JS怎么获取当前时间戳
JS如何判断对象是否为数组
JS怎么获取图片当前宽高
JS对象如何转为json格式字符串
JS怎么获取图片原始宽高
怎么在click事件中调用多个js函数
js如何往数组中添加新元素
js如何拆分字符串
JS怎么对数组内元素进行求和
JS如何判断屏幕大小
js怎么解析json数据
js如何实时获取浏览器窗口大小
原生JS实现别踩白块小游戏(五)
原生JS实现别踩白块小游戏(一)