Tim*_*lee 3 javascript jquery phantomjs
使用PhantomJS考虑以下代码片段:
var reloadAfterLogin = false;
function(user, pass, debug){ // step 3 submit Login
page.evaluate(function(user, pass, debug){
if($("form").attr("action").indexOf("login.do") > 0){
reloadAfterLogin = true;
$('form').submit();
}
}, user, pass, debug);
},
Run Code Online (Sandbox Code Playgroud)
据我了解,这不仅仅是一个范围问题.在page.evaluate()内部执行的代码是一个完整的独立JavaScript实例.我不得不承认我仍然很难解决PhantomJS如何工作但我需要访问page.evaluate()之外的reloadAfterLogin变量.我怎样才能做到这一点?
你可以return从evaluate回调.我想你想要的
function(user, pass, debug){ // step 3 submit Login
reloadAfterLogin = page.evaluate(function(user, pass, debug){
if($("form").attr("action").indexOf("login.do") > 0){
$('form').submit();
return true;
}
return false;
}, user, pass, debug);
}
Run Code Online (Sandbox Code Playgroud)