ここで興味深い問題があります。私は injectJs を使用して、外部ファイル (site.js) を私の phantomJs/CasperJs スクリプトにロードしています。読み込みは問題ありませんが、関数は評価されておらず、文字列として返されています。
ここにsite.jsがあります:
var site = function(){
this.getName = function(){
return 'this is a name';
}
}
これが私のphantom.jsスクリプトです:
casper.start();
casper.then(function(){
phantom.injectJs('/path/to/site.js');
mysite = new site(casper);
name = mysite.getName;
this.echo(name);
});
コンソールに「これは名前です」と出力されることを期待しますが、代わりに「関数(){ this.getName = function(){ return 'これは名前です'; }}'
私もそれを eval() してみましたが、役に立ちませんでした (eval?)。
ご協力いただきありがとうございます。