Я получаю ReferenceError, когда я вызываю функцию, которую я определил внутри страницы. Evaluate() Phantom; Каков правильный способ сделать это?PhantomJS: вызов пользовательской/пользовательской функции в phantomjs
, например:
function mySweetFunction(item) {
// process item....
}
page.evaluate(function(){
var item= document.getElementsById('item');
mySweetFunction(item);
});
тогда я получу ошибку:
ReferenceError: Can't find variable: mySweetFunction
Что такое правильный способ сделать это?
mySweetFunction довольно большой, и я бы предпочел оставить его на странице. Оцените (...), если это возможно.
да, но функция очень большая, поэтому я хотел сохранить его для ясности .. .. – Xsmael
@Xsmael: К сожалению, это единственный способ сделать это. Функция 'page.evaluate' извлекает функцию, переданную ему как строку, которая затем вводится в интерпретатор javascript страницы в phantom.js (который не является интерпретатором, выполняющим ваш код), чтобы быть eval'd – slebetman
@slebetman thanks для этих деталей улучшилось мое понимание. – Xsmael