我正在使用Puppeteer生成PDF。在大型SPA中,代码引用window is not defined
时会有很多次,但window
通常是我在实践中看到的。
如果我在Puppeteer的上下文中运行代码,那么它应该没问题,因为无头浏览器应该有puppeteer.setContent('<script>...</script>')
属性。
我已经看到了将SPA放在一个单独的端口并打开该端口的方法,但我不确定这是否是解决问题的最佳方法,因为我已经知道我要运行的JavaScript而且我只是希望它在Puppeteer的上下文中执行。
有没有更好的方法在Puppeteer中执行JavaScript?也许使用像ggplotly
这样的东西?
如果单独的端口选项是我最好的,那么也许我会默认使用它。
答案 0 :(得分:1)
如果我正确阅读了您的问题,您可能想要使用page.evaluate
;
page.evaluate(function(){
const someVal = window._whatever.factory.producer.getContent()[1].node.value
window._whatever.runAnotherThing(someVal);
});