2017-06-08 51 views
0

我正在處理截圖採取腳本。爲了拍攝截圖,我使用了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

+0

該範圍已經可以訪問'dataObj' ...你有沒有嘗試過使用它? –

回答

0

由於JS工作中的示波器範圍,dataObj已經在您的takeScreenshot函數的作用域中可用,因爲您從其他函數傳入它。所以你所要做的就是在回調中使用它。以下是如何提醒您dataObj上的screenshot屬性的值的方法。

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