Narażanie zmiennych z wywołania PhantomJS na injectJS

Śledziłem przykłady wstrzykiwania jQuery ze strony „Pierwsze kroki” i to działa dobrze. Mam lokalną kopię jQuery w tym samym katalogu i robię coś takiego ...

<code>if(page.injectJs('jquery.min.js')) {
  page.evaluate(function(){
    //Use jQuery or $ 
  }
}
</code>

Kiedy próbuję wstrzyknąć własny skrypt, żadna z funkcji nie jest dla mnie dostępna. Powiedz, że mam skrypt o nazwie myScript.js, który właśnie ma

<code>function doSomething() {
  // doing something...
}
</code>

Nie mogę wtedy użyć czegoś takiego jak ...

<code>if(page.injectJs('myScript.js')) {
  console.log('myScript injected... I think');
  page.evaluate(function() {
    doSomething();
  });
} else { 
  console.log('Failed to inject myScript'); 
}
</code>

próbowałem

<code>window.doSomething = function() {};
</code>

i

<code>document.doSomething = function() {};
</code>

jak również bez powodzenia, a także próbując wywołać je za pomocą window.doSomething () lub document.doSomething () na kolejnej stronie page.evaluate ().

questionAnswers(1)

yourAnswerToTheQuestion