我在全局使用npm安装了phantomJs。为什么此代码不起作用?
var page = require('webpage').create();
var spawn = require('child_process').spawn;
page.open('http://google.com', function(status){
if( status == 'success' ) {
page.render('/tmp/google-snapshot.jpg');
spawn('/usr/bin/sensible-browser', 'file:///tmp/google-snapshot.jpg');
phantom.exit();
}
})
我正在使用Linux Mint。在终端中键入命令
/usr/bin/sensible-browser file:///example.png
可以正常工作,但是为什么这不能通过脚本工作呢? 最佳答案
原来phantom.exit()在spawn()可以完成之前就被调用了。下面的代码解决了该问题。
var page = require('webpage').create();
var spawn = require('child_process').spawn;
page.open('http://google.com', function(status){
if( status == 'success' ) {
page.render('/tmp/google-snapshot.jpg');
spawn('/usr/bin/sensible-browser', 'file:///tmp/google-snapshot.jpg');
}
setTimeout(function(){
phantom.exit();
},2000);
});
参考:https://github.com/ariya/phantomjs/pull/14220
关于javascript - PhantomJs:Spawn没有打开任何应用程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36741680/