使用PhantomJS,我想好像有一个额外注入一些JS <script>
之前的任何其他标记<script>
标记。 这是因为在页面上的脚本中使用某些功能PhantomJS没有,即Function.prototype.bind
和window.webkitRequestAnimationFrame
。 我有两个自定义实现一个JS文件,我想PhantomJS运行页面上的脚本时使用它们。
困难的是,如果我之前page.open做page.injectJs,脚本注入到一个空白页,而不是结转到页面被打开。
或者,如果我page.open后做page.injectJs,为时已晚的JavaScript错误(未定义功能)已经发生。
我发现,似乎工作,但显然是一个黑客的方式:
page.onResourceReceived = function() {
page.injectJs('phantom-hacks.js')
};
这将给它多次(两次,每次资源,显然),不过没关系,因为我的剧本是幂等。 不过,我想知道正确的方式做到这一点:把它注射一次,并运行任何网页上的脚本之前。
谢谢 :)