沒有關閉的功能,你評估。你可以在這裏閱讀一些關於它的內容: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