将其他对象传递给第三方回调

时间:2017-06-08 20:46:01

标签: javascript canvas callback

我正在制作截屏脚本。为了截取屏幕截图,我正在使用html2canvas lib。事情就是最终拍摄截图并调用onrendered回调我必须做一些额外的处理,为此我需要能够得到一些我之前使用的参数。

function onMessageReceived(event){
        ...
    if (dataObj.screenshot)
    {
        takeScreenshot(dataObj); 
    }
}

截取功能:

function takeScreenshot(dataObj) {
    html2canvas($('body'),{
        onrendered: function (canvas) {                     
            var imgString = canvas.toDataURL("screenshot.png"); 
            window.open(imgString);  
            //do some additional handling here using dataObj    
        }
    });
}

它有一些很好的直接解决方案吗?我的意思是,不使用全局变量或在磁盘上保存此dataObj

1 个答案:

答案 0 :(得分:1)

由于JS工作范围的方式,dataObj已在takeScreenshot函数的范围内可用,因为您从其他函数传递了它。所以你需要做的就是在回调中使用它。以下是如何提醒您screenshotdataObj属性的值。

function takeScreenshot(dataObj) {
    html2canvas($('body'),{
        onrendered: function (canvas) {                     
            var imgString = canvas.toDataURL("screenshot.png"); 
            window.open(imgString);  
            alert(dataObj.screenshot);
        }
    });
}