HP.*_*HP. 4 javascript node.js web-scraping phantomjs casperjs
我看到了这个帖子,看起来没有办法将复杂的对象传递给evaluate()
https://groups.google.com/forum/#!topic/casperjs/x7I8LDFwFJ0
因此,如果我写一个对象并希望分享不同的对象,evaluate()我该怎么做?
让我说一些愚蠢的对象,我想一次又一次地使用getData函数:
var testObj = (function() {
var a = 1;
function test1(b) {
return (a+b);
}
return {
getData : function(arg) {
return (test1(3) + arg);
}
}
})();
Run Code Online (Sandbox Code Playgroud)
有可能的解决方法吗?
更新1:
我的意思是传递带有函数的对象.如下所示但它不起作用(返回null):
var casper = require('casper').create();
casper.start('about:blank', function() {
var TestObj = function() {
var a = 1;
function test1(b) {
return (a+b);
}
return {
getData : function(arg) {
return (test1(3) + arg);
}
}
}
var testObj = new TestObj();
this.echo(casper.evaluate(function(myObject ) {
return myObject.getData(100);
}, testObj));
});
casper.run(function() {
this.exit();
});
Run Code Online (Sandbox Code Playgroud)
Hem*_*ela 14
不幸的是,你不能将复杂的结构传递给evaluate(),因为传递给evaluate()的arg是JSON.parse(JSON.stringify(arg)).
但这并不意味着你无法传递另一种物体.
有关如何传递JSON对象以进行评估的示例.
var casper = require('casper').create();
casper.start('about:blank', function() {
var JSONObject = { arg1: 'val1' , arg2: 'val2' };
this.echo(casper.evaluate(function(myObject ) {
return JSON.stringify(myObject);
}, JSONObject));
});
casper.run(function() {
this.exit();
});
Run Code Online (Sandbox Code Playgroud)
有关如何传递基本Object以进行评估的示例.
var casper = require('casper').create();
casper.start('about:blank', function() {
obj = new Object();
obj.param1 = "value1";
obj.param2 = "value2";
this.echo(casper.evaluate(function(myObject ) {
return JSON.stringify(myObject);
}, obj));
});
casper.run(function() {
this.exit();
});
Run Code Online (Sandbox Code Playgroud)
有关如何传递带参数的函数进行求值的示例.
var casper = require('casper').create();
casper.start('about:blank', function() {
var arg1 = "value1";
var arg2 = "value2";
this.echo(casper.evaluate(myFunction, arg1, arg2));
});
casper.run(function() {
this.exit();
});
function myFunction(arg1, arg2) {
return arg1 + "-" + arg2;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5652 次 |
| 最近记录: |