没有关闭的功能,你评估。你可以在这里阅读一些关于它的内容:http://phantomjs.org/api/webpage/method/evaluate.html
这就是为什么变量name1,name2和name3是undefined,当你评估函数。
幻影2在当前版本中有以下错误 - 函数中的错误是评估也不例外。在这种情况下,评估只需返回空。
所以,你有一个错误,你的功能是评估并得到什么。
可以尝试下面的例子中,打印
jsonStr:{ “NAME1”:1, “NAME2”:2 “NAME3”:3}
var casper = require('casper').create();
var fs = require('fs');
casper.start('http://casperjs.org/', function() {});
casper.then(function() {
var jsonStr = this.evaluate(function() {
var outJson = {'name1': 1, 'name2': 2, 'name3': 3};
return JSON.stringify(outJson);
});
this.echo('jsonStr: ' + jsonStr);
fs.write('myFile.json', jsonStr, 'w');
});
casper.run();
和下面的例子中,打印
jsonStr:空
var casper = require('casper').create();
casper.start('http://casperjs.org/', function() {});
casper.then(function() {
var jsonStr = this.evaluate(function() {
var outJson = {'name1': name1, 'name2': name2, 'name3': name3};
return JSON.stringify(outJson);
});
this.echo('jsonStr: ' + jsonStr);
});
casper.run();
谢谢,当name1 ='string1',name2 ='string2'和name3 ='string3'时,情况如何。如何获得这些值的json文件?我试着去做,但我得到了空值.. – ZaurK
@ZaurK我已经更新了答案 - 在第一个示例中添加了将JSON保存到文件。 –
可能是我不明白的东西,但在第一个例子name1':1,它是行之有效的,但我需要'name1':name1,当name1是一个值得到dinamically,它不等于1 – ZaurK