2015-04-13 2 views
0

Я установил PhantomJS в моем Метеор приложение, следуя инструкциям в ответ здесь: Installing/Using Phantom.js with Meteor но метод включал:Метеор PhantomJS Динамический URL

(частный/phantomDriver.js)

var page = require('webpage').create(); 
page.open('http://github.com/', function(){ 
    console.log('Page Loaded'); 
    page.render('github.png'); 
    phantom.exit(); 
}); 

имеет заданный URL ... как передать параметры в файл для изменения URL? например

page.open(URL, etc...) 

Это:

var URL = newURL 
spawn(phantomjs.path, ['assets/app/phantomDriver.js', URL]); 

Журналы

"stdout: ReferenceError: Can't find variable: URL" to the console.

+0

возможно duplicate of [Передача переменной в PhantomJS через exec] (http: // stackoverf low.com/questions/16752882/passing-a-variable-to-phantomjs-via-exec) Если вопрос может не совпадать, ответ будет выполнен. –

ответ

0

Artjom Б. по ссылке не решить эту проблему (необходимый для использования spawn(phantomjs.path) тогда как exec ожидает строку не знаю я знаю), хотя это и привело меня к ответу так, спасибо!

также использование require('system').args; для доступа аргументов, отправленных через spawn

Окончательный код:

server.js:

spawn(phantomjs.path, ['assets/app/phantom_driver.js',URL]); 

частного/phantomDriver.js

var page = require('webpage').create(); 
var args = require('system').args; 
var URL = args[1] 

page.open(URL, function(status) { 
    console.log('Page loaded. Status: ' + status); 
    page.render('github.png'); 
    phantom.exit(); 
})