我正在使用phantomjs來執行下面的代碼。 我無法弄清楚這裏有什麼問題。從幻像js得到奇怪的行爲
function process(arg1, arg2) {
var webpage = require('webpage').create();
webpage.onConsoleMessage = function(msg) {
// something
};
webpage.onError = function(msg, trace) {
// something
};
webpage.open(entityResolvedFilePath, function(status) {
if (status !== 'success') {
abort(ErrorCode['HTML_LOAD_FAILURE']);
} else {
injectScriptsToWebpage(webpage);
if (inputParams['myExpression']) {
var outerWebPagescope=webpage;
window.wepPage=webpage;
webpage.evaluate(function() {
if (hasRequiredNoides(document)) {
//do something
}
else {
//outerWebPagescope.onCallback(); this also doesn't works
wepPage.onCallback();
}
});
}
else {
webpage.onCallback();
}
}
});
webpage.onCallback = function() {
webpage.evaluate(function(inputParams) {
//do something
});
};
}
當我打電話內webpage.open它創建一個新的功能範圍,所以我特林通過創建參考outerWebPagescope訪問外部變量webpage.evaluate,但我無法訪問它。 據我瞭解封閉這應該工作。
任何人都可以解釋我這個。 不知何故,我無法通過使用phantomjs來調試回調代碼,該代碼在瀏覽器中從未打過我的調試器。
感謝響應,我總是得到window.callPhantom爲未定義。 –