2014-07-15 35 views
2

我有一個函數調用clickMore如何調用SpookyJS中的函數?

function clickMore(max, i){ 
    i = i || 0; 
    if ((max == null || i < max) && this.visible(moreButton)) { // synchronous 
     // asynchronous steps... 
     this.thenClick(moreButton); // sometimes the click is not properly dispatched 
     this.echo('click'); 
     this.waitUntilVisible(loadingButton); 
     this.waitUntilVisible(moreButton, null, function onTimeout(){ 
     // only placeholder so that the script doesn't "die" here if the end is reached 
     }); 
     this.then(function(){ 

     //this.capture("business_"+i+".png"); //captures a screenshot of the page 
     clickMore.call(this, max, i+1); // recursion 
     }); 
    } 
} 

我想打電話從鬼這裏功能:

spooky.then(function(){ 
       clickMore.call(spooky); 
      }) 

我已經通過了鬼文檔一看,知道我可能會需要使用一個函數元組,但不知道如何實現。我怎麼能這樣做呢?

UPDATE:

使用從SpookyJS文檔功能的元組沒有運氣嘗試:

spooky.then([{ 
    clickMore: clickMore 
}, function(){ 
    clickMore.call(spooky); 
}]); 

回答

1

功能傳遞到spooky.then將在卡斯帕爾/ PhantomJS JavaScript環境中執行。他們無法訪問Spooky的Node.js JS環境。

spooky.then([{ 
    clickMore: clickMore 
}, function(){ 
    clickMore.call(spooky); // <- spooky is not defined here 
}]); 

請再看看在介紹維基頁面說什麼JavaScript Environmentsthe fact that they are isolated

+0

你沒有真正回答這個問題。 –

+0

當然,我做到了。提供的代碼將不起作用。我解釋了爲什麼,並指出了相關文件。 – lawnsea

+0

那麼,根據問題的更新,提供的代碼不起作用。我明白你想指出錯誤是什麼,但這並不能解決這個問題。這反映了問題的根源。 –