Unfortunately, you cannot pass a complex structure to evaluate (), because any argument passed to evaluate () is of the form JSON.parse (JSON.stringify (arg)).
But this does not mean that you cannot transfer objects of another type.
An example of how to pass a JSON object for evaluation.
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(); });
An example of how to pass a base object for evaluation.
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(); });
An example of how to pass a function with parameters for evaluation.
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; }
source share