私は以下のコードを実行するために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
});
};
}
私は参照を作成outerWebPagescopeによって外側変数にアクセスするトリングが、私はそれにアクセスすることができませんので、それは新しい関数スコープを作成webpage.open内webpage.evaluateを呼び出しています。 閉鎖を理解する限り、これはうまくいくはずです。
誰でも私にこれを説明できますか? 何らかの理由で私はphantomjsを使用してコールバックコードをデバッグすることができません。そのコードはブラウザでデバッガにヒットしません。
おかげで、私は常に未定義としてwindow.callPhantomを取得します。 –